{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": [
     "pdf-title"
    ]
   },
   "source": [
    "# Softmax exercise\n",
    "\n",
    "*Complete and hand in this completed worksheet (including its outputs and any supporting code outside of the worksheet) with your assignment submission. For more details see the [assignments page](http://vision.stanford.edu/teaching/cs231n/assignments.html) on the course website.*\n",
    "\n",
    "This exercise is analogous to the SVM exercise. You will:\n",
    "\n",
    "- implement a fully-vectorized **loss function** for the Softmax classifier\n",
    "- implement the fully-vectorized expression for its **analytic gradient**\n",
    "- **check your implementation** with numerical gradient\n",
    "- use a validation set to **tune the learning rate and regularization** strength\n",
    "- **optimize** the loss function with **SGD**\n",
    "- **visualize** the final learned weights\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "tags": [
     "pdf-ignore"
    ]
   },
   "outputs": [],
   "source": [
    "import random\n",
    "import numpy as np\n",
    "from cs231n.data_utils import load_CIFAR10\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "%matplotlib inline\n",
    "plt.rcParams['figure.figsize'] = (10.0, 8.0) # set default size of plots\n",
    "plt.rcParams['image.interpolation'] = 'nearest'\n",
    "plt.rcParams['image.cmap'] = 'gray'\n",
    "\n",
    "# for auto-reloading extenrnal modules\n",
    "# see http://stackoverflow.com/questions/1907993/autoreload-of-modules-in-ipython\n",
    "%load_ext autoreload\n",
    "%autoreload 2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "tags": [
     "pdf-ignore"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Train data shape:  (49000, 3073)\n",
      "Train labels shape:  (49000,)\n",
      "Validation data shape:  (1000, 3073)\n",
      "Validation labels shape:  (1000,)\n",
      "Test data shape:  (1000, 3073)\n",
      "Test labels shape:  (1000,)\n",
      "dev data shape:  (500, 3073)\n",
      "dev labels shape:  (500,)\n"
     ]
    }
   ],
   "source": [
    "def get_CIFAR10_data(num_training=49000, num_validation=1000, num_test=1000, num_dev=500):\n",
    "    \"\"\"\n",
    "    Load the CIFAR-10 dataset from disk and perform preprocessing to prepare\n",
    "    it for the linear classifier. These are the same steps as we used for the\n",
    "    SVM, but condensed to a single function.  \n",
    "    \"\"\"\n",
    "    # Load the raw CIFAR-10 data\n",
    "    cifar10_dir = 'cs231n/datasets/cifar-10-batches-py'\n",
    "    \n",
    "    # Cleaning up variables to prevent loading data multiple times (which may cause memory issue)\n",
    "    try:\n",
    "       del X_train, y_train\n",
    "       del X_test, y_test\n",
    "       print('Clear previously loaded data.')\n",
    "    except:\n",
    "       pass\n",
    "\n",
    "    X_train, y_train, X_test, y_test = load_CIFAR10(cifar10_dir)\n",
    "    \n",
    "    # subsample the data\n",
    "    mask = list(range(num_training, num_training + num_validation))\n",
    "    X_val = X_train[mask]\n",
    "    y_val = y_train[mask]\n",
    "    mask = list(range(num_training))\n",
    "    X_train = X_train[mask]\n",
    "    y_train = y_train[mask]\n",
    "    mask = list(range(num_test))\n",
    "    X_test = X_test[mask]\n",
    "    y_test = y_test[mask]\n",
    "    mask = np.random.choice(num_training, num_dev, replace=False)\n",
    "    X_dev = X_train[mask]\n",
    "    y_dev = y_train[mask]\n",
    "    \n",
    "    # Preprocessing: reshape the image data into rows\n",
    "    X_train = np.reshape(X_train, (X_train.shape[0], -1))\n",
    "    X_val = np.reshape(X_val, (X_val.shape[0], -1))\n",
    "    X_test = np.reshape(X_test, (X_test.shape[0], -1))\n",
    "    X_dev = np.reshape(X_dev, (X_dev.shape[0], -1))\n",
    "    \n",
    "    # Normalize the data: subtract the mean image\n",
    "    mean_image = np.mean(X_train, axis = 0)\n",
    "    X_train -= mean_image\n",
    "    X_val -= mean_image\n",
    "    X_test -= mean_image\n",
    "    X_dev -= mean_image\n",
    "    \n",
    "    # add bias dimension and transform into columns\n",
    "    X_train = np.hstack([X_train, np.ones((X_train.shape[0], 1))])\n",
    "    X_val = np.hstack([X_val, np.ones((X_val.shape[0], 1))])\n",
    "    X_test = np.hstack([X_test, np.ones((X_test.shape[0], 1))])\n",
    "    X_dev = np.hstack([X_dev, np.ones((X_dev.shape[0], 1))])\n",
    "    \n",
    "    return X_train, y_train, X_val, y_val, X_test, y_test, X_dev, y_dev\n",
    "\n",
    "\n",
    "# Invoke the above function to get our data.\n",
    "X_train, y_train, X_val, y_val, X_test, y_test, X_dev, y_dev = get_CIFAR10_data()\n",
    "print('Train data shape: ', X_train.shape)\n",
    "print('Train labels shape: ', y_train.shape)\n",
    "print('Validation data shape: ', X_val.shape)\n",
    "print('Validation labels shape: ', y_val.shape)\n",
    "print('Test data shape: ', X_test.shape)\n",
    "print('Test labels shape: ', y_test.shape)\n",
    "print('dev data shape: ', X_dev.shape)\n",
    "print('dev labels shape: ', y_dev.shape)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Softmax Classifier\n",
    "\n",
    "Your code for this section will all be written inside `cs231n/classifiers/softmax.py`.\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loss: 2.443775\n",
      "sanity check: 2.302585\n"
     ]
    }
   ],
   "source": [
    "# First implement the naive softmax loss function with nested loops.\n",
    "# Open the file cs231n/classifiers/softmax.py and implement the\n",
    "# softmax_loss_naive function.\n",
    "\n",
    "from cs231n.classifiers.softmax import softmax_loss_naive\n",
    "import time\n",
    "\n",
    "# Generate a random softmax weight matrix and use it to compute the loss.\n",
    "W = np.random.randn(3073, 10) * 0.0001\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 0.0)\n",
    "\n",
    "# As a rough sanity check, our loss should be something close to -log(0.1).\n",
    "print('loss: %f' % loss)\n",
    "print('sanity check: %f' % (-np.log(0.1)))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": [
     "pdf-inline"
    ]
   },
   "source": [
    "**Inline Question 1**\n",
    "\n",
    "Why do we expect our loss to be close to -log(0.1)? Explain briefly.**\n",
    "\n",
    "$\\color{blue}{\\textit Your Answer:}$ *Fill this in* \n",
    "\n",
    "- W各元素接近0，exp(0)=1，带入公式可得\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "numerical: -1.571225 analytic: -1.571225, relative error: 6.988773e-09\n",
      "numerical: 1.146764 analytic: 1.146764, relative error: 6.755794e-08\n",
      "numerical: 3.204451 analytic: 3.204451, relative error: 1.104916e-08\n",
      "numerical: 3.199367 analytic: 3.199367, relative error: 1.170912e-08\n",
      "numerical: 3.505783 analytic: 3.505782, relative error: 8.683027e-09\n",
      "numerical: -3.793733 analytic: -3.793733, relative error: 7.578944e-09\n",
      "numerical: -6.408841 analytic: -6.408841, relative error: 6.914029e-09\n",
      "numerical: -0.110553 analytic: -0.110553, relative error: 1.114473e-07\n",
      "numerical: -1.690444 analytic: -1.690444, relative error: 2.055361e-08\n",
      "numerical: -0.151656 analytic: -0.151656, relative error: 3.479722e-07\n",
      "numerical: -4.595109 analytic: -4.595109, relative error: 5.484929e-10\n",
      "numerical: 1.554720 analytic: 1.554720, relative error: 1.800776e-08\n",
      "numerical: 1.909753 analytic: 1.909753, relative error: 2.969731e-08\n",
      "numerical: 0.212605 analytic: 0.212605, relative error: 2.452183e-07\n",
      "numerical: -2.637286 analytic: -2.637286, relative error: 7.820828e-09\n",
      "numerical: 2.483699 analytic: 2.483699, relative error: 1.538547e-08\n",
      "numerical: -0.363698 analytic: -0.363698, relative error: 1.569386e-07\n",
      "numerical: 1.505118 analytic: 1.505118, relative error: 1.114219e-08\n",
      "numerical: -1.276020 analytic: -1.276020, relative error: 3.383783e-08\n",
      "numerical: 3.163531 analytic: 3.163531, relative error: 3.064845e-09\n"
     ]
    }
   ],
   "source": [
    "# Complete the implementation of softmax_loss_naive and implement a (naive)\n",
    "# version of the gradient that uses nested loops.\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 0.0)\n",
    "\n",
    "# As we did for the SVM, use numeric gradient checking as a debugging tool.\n",
    "# The numeric gradient should be close to the analytic gradient.\n",
    "from cs231n.gradient_check import grad_check_sparse\n",
    "f = lambda w: softmax_loss_naive(w, X_dev, y_dev, 0.0)[0]\n",
    "grad_numerical = grad_check_sparse(f, W, grad, 10)\n",
    "\n",
    "# similar to SVM case, do another gradient check with regularization\n",
    "loss, grad = softmax_loss_naive(W, X_dev, y_dev, 5e1)\n",
    "f = lambda w: softmax_loss_naive(w, X_dev, y_dev, 5e1)[0]\n",
    "grad_numerical = grad_check_sparse(f, W, grad, 10)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "naive loss: 2.443775e+00 computed in 0.108706s\n",
      "vectorized loss: 2.443775e+00 computed in 0.005540s\n",
      "Loss difference: 0.000000\n",
      "Gradient difference: 0.000000\n"
     ]
    }
   ],
   "source": [
    "# Now that we have a naive implementation of the softmax loss function and its gradient,\n",
    "# implement a vectorized version in softmax_loss_vectorized.\n",
    "# The two versions should compute the same results, but the vectorized version should be\n",
    "# much faster.\n",
    "tic = time.time()\n",
    "loss_naive, grad_naive = softmax_loss_naive(W, X_dev, y_dev, 0.000005)\n",
    "toc = time.time()\n",
    "print('naive loss: %e computed in %fs' % (loss_naive, toc - tic))\n",
    "\n",
    "from cs231n.classifiers.softmax import softmax_loss_vectorized\n",
    "tic = time.time()\n",
    "loss_vectorized, grad_vectorized = softmax_loss_vectorized(W, X_dev, y_dev, 0.000005)\n",
    "toc = time.time()\n",
    "print('vectorized loss: %e computed in %fs' % (loss_vectorized, toc - tic))\n",
    "\n",
    "# As we did for the SVM, we use the Frobenius norm to compare the two versions\n",
    "# of the gradient.\n",
    "grad_difference = np.linalg.norm(grad_naive - grad_vectorized, ord='fro')\n",
    "print('Loss difference: %f' % np.abs(loss_naive - loss_vectorized))\n",
    "print('Gradient difference: %f' % grad_difference)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "iteration 0 / 1500: loss 5.592751\n",
      "iteration 100 / 1500: loss 2.472199\n",
      "iteration 200 / 1500: loss 3.108414\n",
      "iteration 300 / 1500: loss 2.772482\n",
      "iteration 400 / 1500: loss 4.148579\n",
      "iteration 500 / 1500: loss 2.307516\n",
      "iteration 600 / 1500: loss 2.796673\n",
      "iteration 700 / 1500: loss 2.645956\n",
      "iteration 800 / 1500: loss 3.211544\n",
      "iteration 900 / 1500: loss 3.853479\n",
      "iteration 1000 / 1500: loss 2.983322\n",
      "iteration 1100 / 1500: loss 2.335345\n",
      "iteration 1200 / 1500: loss 2.761209\n",
      "iteration 1300 / 1500: loss 2.494161\n",
      "iteration 1400 / 1500: loss 2.369269\n",
      "That took 11.981943s\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# CREATED BY MYSELF -- learning rate selection\n",
    "from cs231n.classifiers import Softmax\n",
    "softmax_clf = Softmax()\n",
    "\n",
    "tic = time.time()\n",
    "\n",
    "loss_history = softmax_clf.train(X_train, y_train, learning_rate=5e-7, reg=1e-5, num_iters=1500, verbose=True)\n",
    "\n",
    "toc = time.time()\n",
    "\n",
    "print('That took %fs' % (toc - tic))\n",
    "\n",
    "plt.plot(loss_history)\n",
    "plt.xlabel('#Iteration')\n",
    "plt.ylabel('Loss')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "metadata": {
    "id": "tuning",
    "tags": [
     "code"
    ]
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lr 5.000000e-08 reg 5.000000e+03 train accuracy: 0.139163 val accuracy: 0.130000\n",
      "lr 5.000000e-08 reg 7.500000e+03 train accuracy: 0.132245 val accuracy: 0.116000\n",
      "lr 5.000000e-08 reg 1.000000e+04 train accuracy: 0.154980 val accuracy: 0.135000\n",
      "lr 5.000000e-08 reg 2.500000e+04 train accuracy: 0.155143 val accuracy: 0.163000\n",
      "lr 5.000000e-08 reg 5.000000e+04 train accuracy: 0.167061 val accuracy: 0.182000\n",
      "lr 5.000000e-08 reg 7.500000e+04 train accuracy: 0.179714 val accuracy: 0.195000\n",
      "lr 5.000000e-08 reg 1.000000e+05 train accuracy: 0.209429 val accuracy: 0.234000\n",
      "lr 5.000000e-08 reg 2.500000e+05 train accuracy: 0.265122 val accuracy: 0.287000\n",
      "lr 5.000000e-08 reg 5.000000e+05 train accuracy: 0.253061 val accuracy: 0.262000\n",
      "lr 1.000000e-07 reg 5.000000e+03 train accuracy: 0.177633 val accuracy: 0.170000\n",
      "lr 1.000000e-07 reg 7.500000e+03 train accuracy: 0.180571 val accuracy: 0.202000\n",
      "lr 1.000000e-07 reg 1.000000e+04 train accuracy: 0.174224 val accuracy: 0.174000\n",
      "lr 1.000000e-07 reg 2.500000e+04 train accuracy: 0.212122 val accuracy: 0.230000\n",
      "lr 1.000000e-07 reg 5.000000e+04 train accuracy: 0.240020 val accuracy: 0.256000\n",
      "lr 1.000000e-07 reg 7.500000e+04 train accuracy: 0.277224 val accuracy: 0.294000\n",
      "lr 1.000000e-07 reg 1.000000e+05 train accuracy: 0.290184 val accuracy: 0.298000\n",
      "lr 1.000000e-07 reg 2.500000e+05 train accuracy: 0.278714 val accuracy: 0.293000\n",
      "lr 1.000000e-07 reg 5.000000e+05 train accuracy: 0.271551 val accuracy: 0.280000\n",
      "lr 5.000000e-07 reg 5.000000e+03 train accuracy: 0.285245 val accuracy: 0.296000\n",
      "lr 5.000000e-07 reg 7.500000e+03 train accuracy: 0.313898 val accuracy: 0.326000\n",
      "lr 5.000000e-07 reg 1.000000e+04 train accuracy: 0.332429 val accuracy: 0.336000\n",
      "lr 5.000000e-07 reg 2.500000e+04 train accuracy: 0.327633 val accuracy: 0.335000\n",
      "lr 5.000000e-07 reg 5.000000e+04 train accuracy: 0.314490 val accuracy: 0.325000\n",
      "lr 5.000000e-07 reg 7.500000e+04 train accuracy: 0.292735 val accuracy: 0.312000\n",
      "lr 5.000000e-07 reg 1.000000e+05 train accuracy: 0.274673 val accuracy: 0.286000\n",
      "lr 5.000000e-07 reg 2.500000e+05 train accuracy: 0.258367 val accuracy: 0.279000\n",
      "lr 5.000000e-07 reg 5.000000e+05 train accuracy: 0.245776 val accuracy: 0.264000\n",
      "lr 1.000000e-06 reg 5.000000e+03 train accuracy: 0.343857 val accuracy: 0.359000\n",
      "lr 1.000000e-06 reg 7.500000e+03 train accuracy: 0.360000 val accuracy: 0.371000\n",
      "lr 1.000000e-06 reg 1.000000e+04 train accuracy: 0.350837 val accuracy: 0.353000\n",
      "lr 1.000000e-06 reg 2.500000e+04 train accuracy: 0.310673 val accuracy: 0.331000\n",
      "lr 1.000000e-06 reg 5.000000e+04 train accuracy: 0.299531 val accuracy: 0.302000\n",
      "lr 1.000000e-06 reg 7.500000e+04 train accuracy: 0.300184 val accuracy: 0.319000\n",
      "lr 1.000000e-06 reg 1.000000e+05 train accuracy: 0.278061 val accuracy: 0.284000\n",
      "lr 1.000000e-06 reg 2.500000e+05 train accuracy: 0.247408 val accuracy: 0.271000\n",
      "lr 1.000000e-06 reg 5.000000e+05 train accuracy: 0.215286 val accuracy: 0.216000\n",
      "lr 5.000000e-06 reg 5.000000e+03 train accuracy: 0.291980 val accuracy: 0.311000\n",
      "lr 5.000000e-06 reg 7.500000e+03 train accuracy: 0.283878 val accuracy: 0.273000\n",
      "lr 5.000000e-06 reg 1.000000e+04 train accuracy: 0.257796 val accuracy: 0.252000\n",
      "lr 5.000000e-06 reg 2.500000e+04 train accuracy: 0.220959 val accuracy: 0.223000\n",
      "lr 5.000000e-06 reg 5.000000e+04 train accuracy: 0.134082 val accuracy: 0.125000\n",
      "lr 5.000000e-06 reg 7.500000e+04 train accuracy: 0.090837 val accuracy: 0.072000\n",
      "lr 5.000000e-06 reg 1.000000e+05 train accuracy: 0.126531 val accuracy: 0.118000\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "D:\\JupyterNotes\\assignment1\\cs231n\\classifiers\\softmax.py:96: RuntimeWarning: divide by zero encountered in log\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "lr 5.000000e-06 reg 2.500000e+05 train accuracy: 0.111510 val accuracy: 0.104000\n",
      "lr 5.000000e-06 reg 5.000000e+05 train accuracy: 0.127980 val accuracy: 0.132000\n",
      "best validation accuracy achieved during cross-validation: 0.371000\n"
     ]
    }
   ],
   "source": [
    "# Use the validation set to tune hyperparameters (regularization strength and\n",
    "# learning rate). You should experiment with different ranges for the learning\n",
    "# rates and regularization strengths; if you are careful you should be able to\n",
    "# get a classification accuracy of over 0.35 on the validation set.\n",
    "\n",
    "from cs231n.classifiers import Softmax\n",
    "results = {}\n",
    "best_val = -1\n",
    "best_softmax = None\n",
    "\n",
    "################################################################################\n",
    "# TODO:                                                                        #\n",
    "# Use the validation set to set the learning rate and regularization strength. #\n",
    "# This should be identical to the validation that you did for the SVM; save    #\n",
    "# the best trained softmax classifer in best_softmax.                          #\n",
    "################################################################################\n",
    "\n",
    "# Provided as a reference. You may or may not want to change these hyperparameters\n",
    "learning_rates = [5e-8, 5e-6]\n",
    "regularization_strengths = [5e3, 5e5]\n",
    "\n",
    "# *****START OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****\n",
    "\n",
    "# follow the same steps in svm.ipynb: \n",
    "# first select learning rate that makes lose go down, \n",
    "# then select the regularization strength by cross-validation\n",
    "\n",
    "for lr in [5e-8, 1e-7, 5e-7, 1e-6, 5e-6]:\n",
    "    # instead of   np.linspace(learning_rates[0], learning_rates[1], num=5)\n",
    "    for reg in [5e3, 7.5e3, 1e4, 2.5e4, 5e4, 7.5e4, 1e5, 2.5e5, 5e5]:\n",
    "    # instead of   np.linspace(regularization_strengths[0], regularization_strengths[1], num=5)\n",
    "        softmax_clf = Softmax()\n",
    "        softmax_clf.train(X_train, y_train, learning_rate=lr, reg=reg, num_iters=200)\n",
    "        y_train_pred = softmax_clf.predict(X_train)\n",
    "        y_val_pred = softmax_clf.predict(X_val)\n",
    "        train_acc = np.mean(y_train_pred == y_train)\n",
    "        val_acc = np.mean(y_val_pred == y_val)\n",
    "        \n",
    "        print('lr %e reg %e train accuracy: %f val accuracy: %f' % (\n",
    "                lr, reg, train_acc, val_acc))\n",
    "        \n",
    "        if val_acc > best_val:\n",
    "            best_val = val_acc\n",
    "            best_softmax = softmax_clf\n",
    "\n",
    "pass\n",
    "\n",
    "# *****END OF YOUR CODE (DO NOT DELETE/MODIFY THIS LINE)*****\n",
    "    \n",
    "# Print out results.\n",
    "for lr, reg in sorted(results):\n",
    "    train_accuracy, val_accuracy = results[(lr, reg)]\n",
    "    print('lr %e reg %e train accuracy: %f val accuracy: %f' % (\n",
    "                lr, reg, train_accuracy, val_accuracy))\n",
    "    \n",
    "print('best validation accuracy achieved during cross-validation: %f' % best_val)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "metadata": {
    "id": "test"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "softmax on raw pixels final test set accuracy: 0.346000\n"
     ]
    }
   ],
   "source": [
    "# evaluate on test set\n",
    "# Evaluate the best softmax on test set\n",
    "y_test_pred = best_softmax.predict(X_test)\n",
    "test_accuracy = np.mean(y_test == y_test_pred)\n",
    "print('softmax on raw pixels final test set accuracy: %f' % (test_accuracy, ))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "tags": [
     "pdf-inline"
    ]
   },
   "source": [
    "**Inline Question 2** - *True or False*\n",
    "\n",
    "Suppose the overall training loss is defined as the sum of the per-datapoint loss over all training examples. It is possible to add a new datapoint to a training set that would leave the SVM loss unchanged, but this is not the case with the Softmax classifier loss.\n",
    "\n",
    "$\\color{blue}{\\textit Your Answer:}$\n",
    "\n",
    "True\n",
    "\n",
    "$\\color{blue}{\\textit Your Explanation:}$\n",
    "\n",
    "- Multiclass SVM中$L_{i}=\\max(0, s_{j}-s_{y_{i}}+\\Delta)$，故$L_{i}$可能为0\n",
    "- Softmax的$L_{i}$是$-\\log(\\frac{ e^{f_{y_{i}}} }{ \\sum_{j}e^{f_{j}} })$，分母必然非0，而一般类别不止一类，故$L_{i}$不为0\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXAAAADfCAYAAADvJIiwAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzsvXd4Xcd17v1uHPTee++dIEiCvZOiREqieotcFVsusR37ptw4ca5jO803jlPsuEq21WU1ipIodkIkxQqAIIjee++9n/vHb/w9tCIzhAtl+jvrefjg8Ox99p5Zs2bWu8qssex2uxzkIAc5yEE3Hzl90A1wkIMc5CAH/XrkWMAd5CAHOegmJccC7iAHOchBNyk5FnAHOchBDrpJybGAO8hBDnLQTUqOBdxBDnKQg25SumkXcMuytliW1f5Bt8NBv99kWVazZVk73uf7jZZl1SzxWT+1LOsbv73WOej3kW6mcb5pF3AHOeg3Ibvdfsput6d90O24GelXKUUH3XhyLOAO+m9kWZbzB92GD5L+/95/B/326XclU7/3C7jR9n9lWValZVlDlmX9xLIs9/e5739bltVgWdaYuffuq6591LKs05Zl/Yt5RpNlWbdddd3PsqwnLMvqsiyrw7Ksb1iWZbtRffxtk2VZMZZlvWpZVp9lWQOWZX3Hsqwky7KOm//3W5b1rGVZ/lf9ptmyrL+0LKtM0sQf2CK26r3y814X3Pv137Ks5ZZllRiZelHSf5O7m52WKiuWZT0tKVbSG5ZljVuW9RcfbA9+c7rWOFuWdbtlWaWWZQ1blnXGsqzcq65FWpb1iuFdk2VZn7/q2lcty3rZsqxnLMsalfTR30nj7Xb77/U/Sc2SyiXFSAqU9K6kb0jaIqn9qvvulxQplNKDkiYkRZhrH5U0J+kTkmySPi2pU5Jlru+T9ANJXpJCJV2Q9PgH3fdfk182SZclfdv0x13SBknJknZKcpMUIumkpH97D59LDZ89Puh+fADy80v9l+QqqUXSFyW5SLrPyNA3Pug+/Z7Iyo4Puv2/JR78ynGWlC+pV9Jqw6uPmL67mXWmWNLfmmckSmqUtMs896vmOXeZe38nc+oDZ+B1MLhZ0qeu+v9uSQ3vnYDv87tSSXvN549Kqr/qmqcku6RwSWGSZq5msKSHJZ34oPv+a/JrraQ+Sc7/w313Sbr0Hj5//INu/wclP+/tv6RNukrJm+/O/IEt4L+JrPyhLOC/cpwlfU/S199zf42kzWZRb33Ptb+S9BPz+auSTv6u23+zmMltV31uEUj7l8iyrA9L+pKkePOVt6Tgq27p/sUHu90+aVnWL+4JFJq3y3wnoTGvfufNRDGSWux2+/zVX1qWFSrpPyRtlOQj+jj0nt/erH3+n+h/lJ/3uS9SUofdzMarfvuHRL+JrPyh0LXGOU7SRyzL+txV11zNbxYkRVqWNXzVNZukU1f9/3c+n37vfeCGYq76HCs05v9HlmXFSfqRpD+RFGS32/2F2Wzpf6Y2gcCD7Xa7v/nna7fbs347Tb/h1CYp9n182P8orI5cu93uK+lR/Xf+/KGWprym/FxFV/e/S1KUdZVWN7/9Q6JfV1b+kOTkWuPcJunvr1oX/O12u6fdbn/eXGt6zzUfu92++6rn/M75dLMs4J+1LCvasqxASV+W9OJ7rnsJZvVJkmVZH5OUfT0PttvtXZIOS/qWZVm+lmU5mSDO5t9e828oXRBC+U+WZXmZgN16gaTGJQ1blhUl6c8/yEbeYPqf5Of96KykeUmfNwHNeyQV/C4b+QHQrysrPcLn+4dA1xrnH0n6lGVZqy3Iy7KsPZZl+QjejZrAt4dlWTbLsrIty1p1Ixt/syzgz4lFttH8+6Uke7vdXinpW2IweiTliGDV9dKHhWlUKUzFlyVF/Mat/gDIbrcvSLpDBKJaJbWLoO7fiaDMiKS3JL36QbXxA6Brys/7kd1un5V0j4ifDAke/kHx7DeQlX+U9DcmM+PPblyLf/t0rXG22+1FIvHhO+Zavbnvat7lSWqS1C/px5L8bmT7rV92/fz+kWVZzZL+2G63H/2g2+IgBznIQb9PdLMgcAc5yEEOctB7yLGAO8hBDnLQTUq/9y4UBznIQQ5y0PuTA4E7yEEOctBNSjd0I89LX3rdLkkVbRckSWH2aXWvnJMkdfvukiTNj7tJkhYzXpckxf1sRkMpZPUMDpEYMuBHrvyyoPWSpDMXr0iS3HNatdKXPQk5bvdy7+k+SVLVHPsQrjSGaVMIpQ6+f2elJGlDGSmg6yN6JEkdNYtycgqQJNUUY6FsXRYiSXJNpHxI19QgfQhv0nj1mCSpNYAyCT/41heuJ/9ckvRPH/uqXZKGXPh/z4Zi5TgzLP1vp0iSnBNpe8/cgiQppT1MWSGH6F94nCSpc3JCkhQdQbsDJ/Jo/6yLQproV08P7Vy/qQleVNGn1qAV6vRqkCRtHt0oSar2nJIkBXnyvVt5mDonj0mSekMYI4942rcw5827ZwMlSc1OB5QYHyRJqtjPc5569dnr5sn3Pl1gl6Tj84z78nXxOjZB/wJG6N9ml0VJ0vmqWkmSf1K5nFzAI2sG2KfTOJohSZoYR8a04pwkaT5zVIHHMyVJXrPIR3wUvy0a9ZUkDfdkKrX9rCRpepuPJKnyzKgkKTcnisdN9ulM7zb49UCVJGnuQJckaTZwrSTJc4FnxHoUyKURuXNahwz99R9/5Lp5Ikl3PvppuyTlfY79aU6fuqLxT4ZJkpxnkyRJIZ1l/A32kiQdjmpR1Ov3S5I2uJMHULSWfmSXMH4BHm/Rv0kPDQQ9IElqGOmXJHW7I3NfmTkhSXp9/k6FhcKPFDVKktqaiiVJVdnM4YCIBsWXwd+Dw3WSpMRIBNwlgO0VW/x47rPP9Grt+l5JUnE/svLED165br588kOftUtSj0Xyhy3fU36HDkuSQu9kbnRXMFfPr+P/Dz9vV8VyZNXmxJxIXGTcG53g23zwtyVJQaWrFGan7ZX3sZ0gvNlTkjRTxm+SXUd0duiyJMlnF8+NrsiRJJ2eOi1JWjcfop5J5k3cCvYUTgXC/9dfG5ckZUwjH1FbStTnsVyS5D3FPqEnvvjU+/LEgcAd5CAHOegmpRuKwL0ugwT3B4HOUtafkb8vaDBnHFRzdqJekrT+6yslSYNfuyLP4/v5PPsnkqRb/VMlSW+WgnZC8kCSoe/s0kJAhSTplYVySdL81mlJ0u1FI5KkuThnLWTy/mUD6K/QW7nmf2G7JKl0xyHNTLZybesaSVLDGBp2yB3NGFB/XpLkXZ2pvsT/JUma9TqyZJ5MhtCGiESQ/s6JdaqcANkMxc/Qh0hQVvggaGZoclYv1+2RJGX2gJDHUu6jDWXVkqTusyAL9y/0abQGdNYaBXrtqmOvgXP4O5Ik3+Eh+XuTNj/lQXtcz4MGBpaBLDPi12nGINvZQJ7nK3g9a4sw94CqrJIU1YTwjuSEq3cWXx+dDkmWJKXXgXxaPIZ0bzsov72fcWgfAplEeqfT/7kszQSA0n0XwiVJPzE15VYkgdY9vUBg675paWBtKP0rAJ39ey+lwaMGQEl/5uarkiz63juLJeCdy7vOlCOrX5x00Y8L3pYk1X0vX5LkfzdINbyR9rn3gLZcI/0V/TjvGHq6Y8k8kaRl60DePVfM7u1bOlVay1xYtZx5NN8En7Ku0J6CxTy9GfczSVKcH0jcreRZSVKfN3vdeno/Iklqb2lT7LJZSZJXB9bpjuE7JUllQcy1GP9edQ7CWKuPeeOzljkS+TrW0I7td8pz9DlJ0mQfsmsbBJnOZ9H2d5zZrb4rYE4tkSDR5QuhS+aJUzjtch5CbnNGnbWYwkbKeb8VkqR17bwzIuBp2vnwLSofaZYkjb5zUpJUkkBx0ntmsHaPX4YnWSsj1ePDmrSsg3ZqsESS1DHFfB+Y3at827d454knJUkrikDebg8xHi2LyzXdwrNL47AQ8npY43aku9IXU+iwscquZHcsN9f61bzzi7+i/9fkjoMc5CAHOej3lm4oAn/yAXzfOWN3SJK2NU6oPhBt2XURP1p8Oiil6m7Qus5lKLATv+zuGXxlVf5ozc3LQVS21mhJkt+KN3XK+K79PNHmE2+AsE7m40LK95pRSwPIY5fLQUmS1b9MklQ49BNJUvZUoi4GfFqSlNiERh1eDvI+VQOizJi7VZI0NrWgdjs+RK9zv1QT6LpoYO0lSVLEYTT1m4PhiqylfaseAb01jOOX86uHf3EblukiLjaNH2JHc62FxXGmD7595mP4f5uKWzUzCQL18uAdUYmgdidntPvAYKec/fkceRRkNNHPc10rGY/Rz82r9DugvbR4avTMzIG8wsPxqbaUwOvKqHllmLZ62DKXzJMkD5BK/OaLkqTWYw8qNBbUsyISnjTdDfbY//KkJMk/PVgLwfhtT7/wcUnSmsR/59o0PsZdA/gw5/+qSBX7aWtQCTx5rBtLbTgMtHZ6VbjqOkDankmgvLAL8CI9AnT69dpJtXUhg8NJfPdoNyitxSD5cR+Q56DHJrnUHJckTQ3MLJknkqQO5P9MLb7XO1K2alcy1krgW6WSpEOJGyRJXi1vSpKKYoa1rAr/cHgYbRy+E8um9GfIgWcQvwkL9tDcCH1224O8d3TynPlALLrdlwP0mom/RPsipwPjzC1rLTGpY/0/1hYbbZzZgUX4TiRo84tPI58/z4ZvF7zcpSp+v9gzvmSWOPvjj0/IxTI7duIx3ZWMZTBSRX/bczk5r77icUlSgJ9NnmX0PSQHGT7hzzp0qZFjABZv4XvX1mZN12IxpW3DApq6jAXiH4CVeXhHszSFVZM/y/x5cZBrHdX49XdHBarMk7je1+tulyR9M65IkrTqAO+64sJv67OTlVJLOyLWT1y7/9e8+lumsLqtfKikltCTQaHKnscc98xgEe1uZ0LmtjGRYkZ/rtNJmH4HoxBE50bKlESHYrL1ZTRLkjJHp+XRT4Doii/CvudBmDL3KsJ2+NFGRVRg+oQN7ZQk9VZS1z8sjcBfSW26fO5EcL06aXNrJKbyHx1DSD3SaV/vzLQCTP13fzNpl0K7L6LMqmZQDFmZqXKaRLH0drKo+PjAG6+cr0iSzpWcUkIr7otzZQ9LktY/Bk/nLNwcPY0Ib8hCuipjWdwXohDs8AECdwN3IGR+rZa6R1nAB91pR+123AXrXAj82fenyyuBydcQgXIoePsHPCcDgbR5scCdq72seF8EL/+c55J50h9I0HG8niJwSSEnVDgRL0nKWGSyN7TQh615KIoTJzYpNo9FIa7+h5KkWKcESdJsEO2+HM84Tb+xXe2rUQBeQ8adMcMkH3XhN1kl42odxA2xbJLJPTKPy8nLB5kd857XYiwLXmTIgCSpZoJJHmTqHXoFekiSOtr3q7ITWQz8UMCSeSJJC74oyp3L4Glkc6bqa16RJEUvZ/wePQ/g6E7FrWXPS1XgKG6M00m46XpfQyHFheMa2m6xmL1i85LfKAuOvRE3Y5IXC/eAK/f+dK5Qe3ejlLzvi5ckvRjH8zLTGAtFb9C+acbJ15V27HgCl+PxfPiR4IWLcmRxuxZyUc5e55d+Xkb1NOBkbQlus9zpJkXEm0B0v5FHN/od14LiGvFqUdoY4/aOG3Pi8Q4DBHbSzs59gIF+nyuyrWXt8Jtk/MrxMsknGhlaKBlUkrtZfIM4aS7odsa4oJYxqxz9iebSAaLf7aGfK4tMMsEic279JPOqvc1DXlHM/f7Kimv23+FCcZCDHOSgm5RuKAKf6sL8DdiLtlzt3KuxTlB11DnMCbmAovpDCEz2P7hbAUWYYVOVaKjJdH5f7wESGRoEobbUnJZtHHfKVqH5jh8GKT+4jr/BV2I0MIwmblwDCrDCQXzL8FTIZm/WDMBDr0ajiZ09MQHzt5GyODHKe2IWWuRaihl7ZO3STcBvLhD88NrKyVRr5i4rdwq009wNqutaaJYk9QaDLDzj/eTqDbqIcMOa6DwJKvJ3BgEU5YKAYhdaFNFI+2qO40I4l2Csh1dBsT797tqZDfI493GQybImEEmnD224VNumxEDEZUsXwcoLGY9JkubKGNdEX/h4n9e98h7AzfU9V/i3awk8SXfbJEmKuxf0P/h8lip2Ig9RzbgKBq6QJtqQgrUStMZFExWMeeE9oP/QgyDvAS+sEx8/Bjgz+20FC6vhSimusO1+8HZwD2hy8mujmt0NCi0sxkzPuBO30nQl/Ls3a7v+NQx3wqM2+NbTAg9GHuCe1q9x3S1xlaxEEFjeEdC+ri48eh1Uegy0mXE37Zp7skjhd98iSepYwK21Yr1xY5gNetFvjOpAHP2+3wN+tOeDyGPOviZJGnfnN+MbbVrZgFVbPgkyrR3ESj1/DsvCL3hIh37O/Nt4K1bqwzOcXnjBD1lZMTyvA864prxrkI0NMcyNklHG5m0zVf6kqVz/Mo+1FzqydGvtkU6e5xKBtXSkJ0Bl4S9Jkl77CQx+6HbaEjCGHBxplvauwNJYeBNePu0C4v1cJ2mULdtB0K5Fu5TUZdIk+5CviGjeVeFKymZe/6KyjTuxo5XnWZn8xj0WV8iKdz+r0TqCl3Ji7v7d40D5rJOsgS4tIPEdUbnab2esfaPuvGb/HQjcQQ5ykINuUrqhCNw5BnTda3zQ7cu36s4KkF/fXfiZXF9DO3UG4U8euHxFXkmgwXvbCBIenOA5swOk1YUNc++uB5P1tR4QslsJiO2uXaToHJkFfRT036rxKBBQ9hQouvJZEMWFj/LbmoJ12uaFds2/BJK8cgAUMxkBCqvupE0H7TuVMoP29txQtmSeRMwxBHWnQAfzjf16OZi0pdQE/LHrx0FXjc1mY093uMZCQQP2ZbR92kbQNvoMwbneWZDq+cZ4/VEv2nzqbqqCzvaCBKciQJZ5U23a8AoIdCyVvzXRIMihblKxkucCNVCML/2VVfB/rS/pnXHlIJKOCXzPLW73KisAJOcR4LFknoSbDTQ/mSEmkVfQqtwfYC1VfwvE6fZv9L+0DNSXtHVMseOgzsExkx7nBoLfnA6P51tAkX2+/6JLZ4iRxM/znCM20v+WHyN24Bb2kOI7iI2MhoDyS4ofkSStWeQ9z7seVaYnz7bNY5VU9SAnLi+AyNd+2Ph1j0brsj/j2TP461UcTU/AMrObYGTn9n7FTTCGk07Mo55ZLItVici9+3ylHh1CRr4xiOWZ5NcsSQoMWSdJapqirRufO6TnPZDlR/2Ya2+YmMCKYNChT3Gahj5P3KCi6lFJ0kAWvLTmkLljp/20xqD9wQ2g3zYL3s2+wjh+9R6uH4j31spW+jCe1LhknrQn0d46T+aulT+hwadB3suTQL+uflw74U9gNsrHruo2xqvgPmQ3w4mU0ddC4VWONyh+MTdds83wouxWELO74PWGZ0Dpl11X6D92k4xwf1+8JMmrhDniFchzf953XEGxyIZzOzJz/39hGXulIoNR8bQ7y+amoUH6NTg9es3+OxC4gxzkIAfdpHRDEXhuIf7FkZ0ggZDic2r6Aoh7ZSFoZzYZJFoSCVpaWdGghUk+n/fCF+41BbpYyKP5Az1o08unRvSYJ9r8QgZOtgNm+/LMCrTxyLpORReiCU/U8dzQxwslSb6tPGdvwBkV1+InTKr+W0nS6hX/IEnqWwQF+ziB4u9fNiCndvx8801LP8QnywC0j3qBVIrC1yjfDV5c6oNfviOgYLcB/MnjWxI1tZ/MCJvZwBDewN+2vaDtFCf83T7D8/pJEmhn2WkQ3OU+YgnbYum3W26vnhkBXQSW8ftGi//nHcBKcf/ygkYq+P3IHAh55h1QRvttWDsH9oGOc/NOqbMB1LIi7o+WzJMys+FmVTsWVscdodqyDYsn/I0zkqTTKcjA3g58/55NEfq5M7GQVSGgxQZv0FTXFf7KC/90RmK+go2cFbqS2rWliY1Qwx5YIG2BP9O8D/5Q/3j6HfZjI5s7QeBpRR/XQPST5l2gMg8/UtXCwxi7+X2MS/XmfmUOITOdo1cfo3j9NJiF39ZvjCyYSPcheYdhcVU34Ctdt4yMklOVBHFG+xJk9cOre7chV40XkO2mGMb4Z+/i7956V762nSfts3Dl9yVJaz1AzJdeIbXz/P2V+rrxO79tNue4jmGZxXmyoc1/5VGNNeATnh3COn7eBZS+wY+58uZzoHhrda466uFVZODS8WRFk/H1p2LVOM3PyuaMJdDpTTuHzjEXVq/gnsS3T6smiTSh892MW0gzWTz2PjbgDG5GDvqHEpR2jnG/bYWJIb1rLI0Yc1Jf6Bl98vP4vkc/RVypJ5J5tNiLLKdtiVLiEHG+pjX0fdQVBN/mzprlVYk1WTgbIm+3ffDEnnTN/jsQuIMc5CAH3aR0QxH4KztBADs3gro9z9Sp/yVQZaXR6oO3kO3hcwU/8GjSRjl5saFjzI/I7oYmENWKBfzRfzL6XUnSPYN/oW+Pc09UGEgkYw7t/q16/L57z2WpMv1lSVKmO/6l5j603FA/aMHXflkhwWj2Yh82X9weYDY2DIKCnjWFpe4dzpPfajJJus6Yw6w/df05F6Me+L32NRXSvswYXbrAO6KzQIWDTiDKoTFT4KbrPzUzw9bfyTTQdfIfo/nLWr8sSerbBwIIenhAe6rxJduDyDt91Wwk+cQA0f+LsxOyMkADvbFs6rjXFCrq/BBj1fDDdzSeRi58Ry1Ie8oP/q06gJ8vPx+UXJ1YIKuQ50UnHTI9ffS6eXJ+Ht4XRCMLmW8fkOcQfXhtPT7ZMGOllIxwb/s73brDZGdospnvChgH/yZyaTuG4dXB5p9obgb/o7cPCGkkEgstuBak6RyZqfJwUGPyP9Cv6J3weLqIrA37jpPyuoB87UsCqWaH4PtvHOe3d98O/7pPlKktE367bfn1fOCzM8RCMp6BLyN37FTdZazSvDTmxD8fwj9+30b641Jr6TtbyEh65OIvYgT4vGd9mXtfsNOHI+2uClwAkd46Rx/Lexlj1xCef1uvk45ZWNCd8z+WJHkMcm+SP37btnXTimxic1tiHeUp3EPJMImeZslp3wDCnQzz10Ql/uMJj7gl8+TWzexlcPGGp5fH3OU+jpW8sgfLwmkdsuJzmv62bw5Wcc1eSdLeMOR8QyC+8MJHvylJSngWK8XaelizEXze126KyTUwjv6h9GVkOE6v/w08yTkHgj9/O9k7eT680ys1RR21WEve5Vgsfq3wwNfPFPpazka5fs8ZjXfw2dmWcs3+39AFfI2pftd5mgUqLzFEF1YzOdZ7sBj7XSTAWRuDwCT21Ui+GAo1XSwc+4tMpcDNDNragYckSc+7jCvAG6ZU+XPvrSk8/3/Ns8Gnc7xQkWH8rmsf5mKOOYZ0YpiNGnPNUwptx73SEs9E6HLCJWOzYwZ/Ko+B8W09oJgkXBKuTQlL5knrEAN+9zqCfRd6BpRsNjX1LBBArc7EbeAxTntfCyzQIztZjGsHEK4rFbhgKhaeoU/eCMvBo8u1c5h0L2sdpvR9FSw25UPwwbsiSZ4HWdBOPYAZd9qD/g46szhP+1taF4xQTo9jOid7G1eA4Z9XC4v/3soqdfujkPvqkpfME+cOtpkOtbGY9iev1JlsZGexlkmUN42CLoplkXbbUaqOMyywvqbEfeowC8NFswNzLgWZWtNwXtPjjGOCMYOHB1D8Li2410aTZpVq9HH1QyxC+T5UYzxlK5QkeU+HaqCO6np7lwMCurvge8gW/h6ewTy20nYqKRJF0jtcbnr6+SXxZa0ncta1BoW+990CPbsNXtU+Y4DGPYzJwHHqaixmhOg/J1Amb/07Muu3A/dB3AztKbsDuQ1375QtiABw9yj3+pjaKiEejKPru6WaXY27IakGngV+lrEoP8ZGnlsLt6okBqUxeQ6XSXASgcSmLNqbNQBzj4yMa/tttKe4/Jjp6V9fN0/axlAw3q8xHxI+HK3Rw6wPLW4AjuFQ/j/iQlvSkrcraI6dk50HWYxLdjwlSYo+xoLZP8dzV/wwTu6bWa86fJkTETYUw4kC7o06e1AFkXdJkpyzWcfuPcwYVeQhH35N+2QbZG1qSMZvGuOHsh9LxEXnH43bK/N0o86eQPF3RV64Zv8dLhQHOchBDrpJ6YYi8PZ8tHl6BOl23fsDtXCBesrtd5Hk3v42/88fIgUsuX1SHYmYxh42EGOQ0e59VwhApYeDotbbM/RCBMGzlS9hSl7ZiCthoAaXzNBIsvbuBlVf7kVrrwEEq81suZ5t91fbWmDcbfV8d6IOpDtsQ0tuckVzv5sQqIddac/EWPeSeZLa+Fn64ovGXmyv1tum+uDWChBjSzTBIb/NWBN7jneqMACkmOhFQMV+BdSSEg7qbHPHBHOanlLXCiqrNXTSUac9WCOb9oFMBqNcFP5pkFFYz1clSWNNILi6SBD5XTlNypgw6MyOq2mwm9TF3F5QZmE+wc3j5ZNavd1sea+8dhrU+9Fq486IGgPxeNicVdkP6hmsAg0dLyCIm9uMi8b/6a3yfZzfVRfRjqC11OQeGmyWJP2lcXNc6ImVZw739rbDp4kUkE5/Kv0OHZnRzCj352wzVeRsuDDqckxq5f4ZhX0RmXxzHwHXtARQVq0J/m4MYqv7QNxfqbMR67KtCVeDHlsaXyLKkcVpL8z9kxubpEO8L2wD1SknPP5NktS9jXngH92h7z+DzC5PBEUPGbdiq6l9Pn6Qvk+kZyl2HNQ6GYi1NR8MelekQYTRd8nF1ixJmknHGnI2m8huscHTybg4tfUwfzd8hDlx8SBBTaeV8MtvhN/4xfaquxTXYFd2xNIYIul8ETKS8jXkVKc9NN3JvA6PRFZSMRR0oZqSfoFjP1VYHGMYkIzVdjmYdSIgyqQKBjG/iuJGFVpDuYuoXbhiSj9F/9eV4hay5+ZpKJ217Urof0mScn7E8+/1YB15sttF/omMSWw1PFisIukhJBkeDR0xm3fcFuWxg/5khV7bgnUgcAc5yEEOuknphiLwuWm0eewP2EDQnFqmhFBQTtUFNOFqAJDOzHDPaPKUfC+DGJoSqTgWvIb0rpQWmu87DRo+7fuEOg6hOYPyQFapk6Am2zICBe/MtOnCa/gr71sPEi0K5O+/6JJkAAAgAElEQVTEAhrb1j6u/HoQfJA76CXL2+ytdwEF9Z1Hs047S6+v56STLfbtS+fJfaBF54sgkgHdpoRW/KfT/vT37gMgCnc/eHV+Zl6f6qafJ9NANr5zVFJMb0EnH7qPwFLe94e1PItNCb6XYG7piyAl31B4Xl7qp+B+ClM1hYH+vetAZameWDf2sytVug6UmeBMEKw4EAT26gL+18dMVtXl8w2qasVa8I3JWzJPxs7g859KxjdafmpOIcn0a9EPvid54X+smgYZjmys0bw5YSYqmP4NjIOYtsQiJ5UjWyRJ3W5O8lteZ3jAOOcF47u88Jop/JWfKC8byPBYKRuWAsLYdh9bD+9Tk1oUUIlc+boTJG91oa66ZyAxgCBPnuE59h/q9QBhfXrNhiXzRJLKnBmbUVNoasT7kh4OYwxeG0BmbhvB5+oWQZ9fODCokEGsl/bdyO7kZRDgnghQ46DvJyVJRa2NshpJcWvPBdmGXKHNWU5suz8XfIvsl0HpFTPEJZRq6sCnEDfqvvyqlodjSZcdJGA+lIPfd/w5EhJSdjNXAsb71JX2Im2uT18yT8Iexxp0eo3nj/Vmy8mJeZwSg2V4ZRFLc/0XqTBqP1qgqXeRozd+yJjed4p04UPPIXPu/8p49h0dVNZ21q0TQTw3rAqZa+4mhmBznlNkMXPp9lme9+py+PdOGUHhbGdvTSYzb+ZDGI+x7SYo+hRWavlaUySs5NMKzWfu17b2X7P/DgTuIAc5yEE3Kd1QBP4ZU271R8Ego6SWQS3LAsFsfRftfabepPJtB9W6Rj+uHRPNkqQMd3xRhRfwoc+ZQkmhmXTjzaJtejuR6LbNDmIOcUHLBbaRwZE8WabwDLTlodO8e08NGzyKP2S2Q/tYWojhmYlNfDdXQfGkihCi1wMj/DY4u0T2E7Sr+7OVS+bJXDOI761OUNmuggBFetKHfV1YBisCsSIGYziRyLe+W68Y5LViAH9q7xb697MQEERaESU6a5NcteI5EENLarwkaX0g8QCnQHzY6zpqNJcPel2Tyz314fAo2oVxqN1xn+7pwy931KlZkrTZmzYEzJEJsr8PFJiUu1zZLSC51pGl10iP3w3SqRnAijqZdEL/p+ceeLCR9jw3AW92d7AFvjRlu2q8iQcstpBt86d2fPZfqmQDRXg3GRrRtmn1p4E+1QKvh6vpS+fdpNQEHPuxAlMY44CiLZKkEVf8o5sSkd93rRz52UFhsdvIIho/xz29C38sSZqbeEOSZIvfId9aZPINJ3izaYl8iRkGBXdsxy+6qtdX55tof+52rMozfaDYR1chV3n1vRoJJV7Qf8Vs784ida6kDUsn1x9raT5qTId9QcarfbAgQjaCDkeSsTq63rHp41uJzVizjG2QK3M2+AzfB6Xa5JLGXJiZMpkbI7RzPhAEPhGIudb3yqJip+FE7OdWLZEjkooZx+oF4h1hQ1MaCyQr5tIEPnX33WTNzP2MdvoHdMvnMWOFfJfyEs/nYd2sXkMsyG5KLURNduuHtawzMVHIUYBJ8fOeRj5a7ZbGFlkv5tbTr9AKY9m5k53injKi2jNYtV5e8C3gJHI6H2VqsJfB6zH7Pk02wu+IxOZrdt+BwB3kIAc56CalG4rAT3oQmc92xS/W+rg0eh6t2Gzh827Pb5YkJT8DohyPeUE/yMMPF13IllaPRjYvlH0Xn+7ct/HJLQt6UBPmJBC3aFCnazP5vsfTeUZB/bAOXcb/dbcHqP+du8nOmD6MRv3QwK2qvwXfdEkkGQiB/mxtvaOTd14whXLGBlu1ehOIdvJt/J3adv08Sb8AKvywH336p+YmxY6DpnLXgS7CR/HPXmoEWQwtWGrLBTHGFxHBHngLn25kIv0OMgh942C0nHwYZq9ZU1x/Fj6eWsv/k2ouqm4Sf6bnGGgsPQfU5nSJUqEp7x7Rxd3422Na8Td2zoFietca/rWReTLuN6u0dKyGtvpJ09OvXDdPLvXES5K2eZGD/uholE6U/IskqXmAcrkPm408bXeBGFe9/ax23cHhG4WBoKmKXs5l/PIK8mwbAxnLxvOhmrncLElKqwfJnxKIa0UNaGvY+UtKccK3HxoIb07UgZii7KCj5OA5DY6aokO5IPDILFDuJieyqk6VIutr3WpU8yA8yW5dft28uJr6otgM5dkAn2u82zWySFuizWavXk/84w37kOX2fkvzYdw/tQCqXjbLtXN7wG/2K8iQZ6+7Yky2T14Yf4s9TNmEOfgenVih/9vIeD/qR5zlpBfzaCybexvC1yu/Bmvh1kEOHDm6SGwgNY1iW21tyJItvUIu4ViLzefNSQmPXL9t4l7H2JhkF/WEtepcD2PqFIYPPOBlUHbwVizE0iMFGuo2Re984EVyG+90d2Je160miybtpRY94IVVW3uSe3sW2KfRG8ucvavHrn3GwiiwY3HUzH2YdwZTauG7tgLdFsG1GbOnYWiY+Vd2mu9X7TQlQyYbtawBWQ41nohfRQ4E7iAHOchBNyndUAQ+YTNFzrNMQXm/XI1047c8kgxSu6PFnHvpx+6wbSG9erMKjdf3ca75PIv2jvgOSKA6Ex9X8H3dmvt7tGV0CoikeRdIMqeP99y6OKPmSbI66iLxq7pFmRPUNxP5fd2jX6tm8Z+GHgH9egag61q3orlXHgbpu97qrL5yPnuFdy6ZJ8P3g0xPXsaXu9Jy19gIlsqFI/8oSYpPwvedWGWK8+RainYBXQzHk0sa6glvElqwXHr9jT/YHqXkcfyO82PcU2zyj1eeABG2r7pF/oOUTN3ggg/w8M/hX/p2kOVEg6tue5dsgfYPg/IrqsgVLq89IEm60xx31jK2TE7NjGfexNLPxJwZJWvgtNlBuJDjraHVfyNJihwG2b7iBvLcilGi+fQNeutJ+O+ZAZKpcsYvOtIPr55r/bkk6fbsREUbhDNhDkJf7kG/my1Qd3jUAZXV4dt3XkQuwtOIC/woBnkL76tQXwDxE/cTPHvYCXSdZLptZYFkSwYC5fOflD/oeMB7yTyRJOcZxrG5H59p6KSv4szOy55m+GHZkf9uV1M46d5MRV/EovtMDvdeKmNMh18GrXutwgpecThEY59jbF88SfZEVDgWjq8pX1xWkq5NgSDvIld8+RGDzOeMaGOdbonX7Nv87rk2kGn6GNv/23yZe51u+OgX++O17Ar89fG+9rbx9yMfVzKEYjIoO3HiqJNKVzBHPV3IJLGZjBqnQ7QpsKZQcVnkac8OMc+bR3hOnzdWgPe+ByVJrx87o8e3wUvneUzrcQ/2Wiw0k/Gzb2BKZfNY+iE1xG88e7DYFyfg7R9H2zXtz7xWETKT4sNYTQRhxS2UYOHleD2hlhTWtrEzHCuoX2G03dAFvGAEwR0ZgdmH3P5G2yIwWbJzMXNDMphR3j/DJeA1ZpfHcpz+0UdNBTNnTOHQKbbLj8cRVAh/rVAzyZhuo2MIZ+T3YWDrDp57cDxbIREwOTyZANSVk5h3tnkCENkx/iozlQ+dgk1gxZyKE1PL3/3hzNCQS54KCyZgURe7dck8aWpmoH1DMau2vzKjxY8h3MFOn5Akna1mlVrIIA3KN+slhb6DqT+1BndGbD82ZEY4vCnuMEHO2FMayWGh3VxHELLjPBsQ6p0RbLemp9Vbw0HA4w8jXG7rESbLnGLivGyNDpnzNse6EeiWkP+QJG09jbItXscELDjZqENOKM47H5peMk+SAhj7NZNMGK/SE3olDZdJ5hxV98IX2HZd5Ed7C5xH1OONfGUsoGxHRzGDJ70Y71vamdBufs26Ms+YhYYxYbvbUY6uKbT33PpEpU4hFxvKWdzdJnAHFNdQmiAwrVH5dhR8vyeprX7nmKSzgSi7DF8CjpHdjRoaZKHqucACrAeXxpeOURTaHb7IdGlUvy5fwV3gMs8zt44jO8/54d7KPhyhuUEU9dlW5lrVBONve4RFYrNFEH5mW79G3qaNCcsBJfuGmGPJpkZKp++gnBeRMbdoSlikmpojzX0oiNx//KH8vZkf/SOF/M4F1LDWeNTGWlD2BZtn9cI5lqH8+ZdNT++7bp7Y45jnz1SiwKL+okOZcyx6PvuRkV5/+NVmIx05NTlbHQHwJDGyWZLkaipVZs6ZVM1heBOxrUtVMpulFvmbG8B6dMoJ1+0nbFl66ixzwObDZq07CwjovtWLsj91/pw+4ssa51RAyY6SedI6kxaQ9+oB3Lzpi3+ppC7a93zGftPTL71v/x0uFAc5yEEOuknphiLwXnNS98nyQklScke4ypNBMMv+A+TQlIYJF+ADGi6PjtGuXtBXvwuBgQPLQUCZdTj4N/c8LUlqSA+Qy7cwiSZCMDf9N2M+J5gayAmuJ+SWi4nt+n9B7srmnmWDoNkivw4lVoKoDm3iXXtqQDru5bhzIu9H8685XK2qJkxtV7+ln8gz9jrtyowB8dd7LairFU08PYAW95sFTWX6sSGnvSFIbtEgx9TmZklSXxoWxjEXg2w6QIvhrm2qO0HaWJ85RdspAbRpm4Svuc4Pyy+J9796EZHwngdBzZQYBP3wkFL7aGtAB64El8wtkqQ719Het6JMAZ/EAEUHsClhujZ7yTw5XYd527eaFLyJqSQts7AWrkSb8y0HKQQUOYx7oMetX8s2gEKtoyCbiGx44hbD/5+YBCVtGovVWn/6UO3dTF9GCGIFTBKo2vV8s6YMcv/pZ0DRO4pA7c7GWvKrCFRWHBuVzjhjSU09hExF1jI+TnPI1unVNsXFArmb3QuXzBNJCrwDO/rUc1iF2+LfkbsT6HfUHYusyAQdI3uRU9dMF/nOkb543GL81qYjI6tq+PtUIO627UEJGlgDf/0OEHz9i/jnJUmXO+FBQNyA/joCy+jVCpIBvteLfOYFAq9jU6flUkH//+Qxqm1e6eQdDW8S5A0twPp986CL8reSouvR+PaSeTIzypgGmZrk3eNRuusk7qwrPoxf3Crmka3TyHTHgE6YQlKTXaDitjqskuwHsTRcX6G/r0WU6kFzYlFhRDMvfQdL1tWkc/5T1KSydsDj5g0EJpc9gwXstALX6KNddnWl066LpSbtMhBLdiHWnFbkQ5A1OOCA3noHN7F3TsE1++9A4A5ykIMcdJPSDUXgFQlo9wxzOo41tEmByXxuSidIEu4HCq5ZoEjR8NlQuWwzAQKAo/a+QfDgQCKoOLAP1P5sU6k25RNImW5D647Z8csdygShbO9Yp5F+kFRBPM+r2wzaSHAh0X52MkNJ5rT3WxLQcWdG8UOnJIPeY0zK06msNE010r7YVq8l8yQqhf6fjwCdxZXXKa8JNFAeyzvnh9DqcwW8+8SpeeVMg+xGzVb1gln8fS93wpsUO5r/fHGHZjO/AE9s35YkVY8TJEytx19b0lUjyxTj+WiIqendwIal1vvjJUnBA+tU3ghqWpgF9c434Tc81se4nqnAKvHf6KdYi8GqPv2LEqHXXw8809ec3lKFTFjLozQzhk/eN5j2VcwRDFt9ie9no9J0upt22dIJRPbb4FvMG6CYVQn4xDP6VmjAhTa714Dg+pJIWbRPEACrvH23kp4nOPuhOpBciwdWRUA7f1M2BehcIYH5UE8Ce84hPHffIIh+vpfYhOuj/hoV7do0PHbdvLiags6CtmPikM3+ojg5bzepaUNme7fxiYc2UcCsKuAT8hiNlyStWwNiHm8ilnQxACTo1oq1O1o8qlE34jhDOQSA2+tBpJfNZp1tw/F6YYI64J3eJAHcFc3ceqsUH/Ga7LvlUg+6fLocGdkl0OUFP2Q431hms5n/quhv/7kk6fV7iW/8+RJ40tHD89anIG+RwzYVJjB/PEwK52S7sZgm4dVI0BnlumHlnUtD1jI74E1FMYXCXJywZLac36XyIPqQn4qlORrG+A8NIIthQ5VKTWDexV5gHn3hj3j+qjLaYFmNcq/+FO+6k1rp3eZMTZcZZC4mijYcrUqVbyBrSnuD7Zr9dyBwBznIQQ66SemGIvChHiKyQdP4kIazD8g5Dn/eyQNkMDziir82OQ/01LTKXeFFRMJLQ0AFsUGgghWh+BuPTYCQPpPlolNG04918t14IP7PBxbxvZU396vzLFoxJxK/XOZZ/J7vNuGPT18xpTcCud+5jXvWtpACFgbQ0bQbSKvF5biSBvGB9x0zp2r/w/XzJHDApKhF448OXZavijEsAe9BfGxFsaCVd4+xYeiTM9M6sMhhD0EupBG2j6GLg1rpS4nZrj05Mq55T8poTsTxXbg5USelnaj8wsKgGhbjJUmdb4Ighm0gm4553qmERkUH07/9i4zfJ7zwqdZeIOMk9Ta2Zvf/bYi6/gIk6ByRev3MMJQZgE/1wg76P/q9OsX4s9Grws7YP/SN/5QkPdcDcna1B6r/DqyO+NdA7n3TptCRhQz0ZzB4r5R1Kd4DS889BCSfOkB6YqMzGScxNcnKzQO5vTjOvTsWeK4tGdTuUjunDH8OWWhYh//W+79Apdtuh9fHsuHxiso55ZpiT985zG8+/cml8aWom7GoMQeIeIRPyMmZbIWpTlDnilCsoJYC0P6dF3P1qrk/tJZxczcZJrsP4Nt9LgA+Bz/SqcYu2uvihb92zf08N6EJ63Ki3EPz8Vh9u51JEawwFsr6IZCqc9UpVZlicjFNzFmbDWuy0x3E6+6PtRTffa8qfM0JNV1Lt2A7FxmLyQ5iXlWRXmp0ph2WN6jYNkDsyDXWWI7nA+Rt5sIdM4ztuz5Y1MsnsGzfSMeS/0zUhC6WmrIZplDcWc9mSdKQKbCWM/mYCqPIzPF+kflzxwSlrt1m4PEG1ap0DW31+SZjtDUUmTu5lthe0Hl4n2AdUaofc/5EWcM1++9A4A5ykIMcdJPSjT2VPgUN1D6GD7CzO0IhsWijf05FM3+zHG25rY3iTrZ341W8CRQcaY7a6jOnSwecAer67QVRjDalqaMPTRizBnTgddEUe4plS3iE7RVNT5G/6hyKf7InARTnlYyP8WxAsO49SOnWapPPeTnFbEeeRudtCTTFa3o3aMZo3/HYhSXzZHbbFklSSF2zJOmlUDfdY8d/+nwoqHzlcfJjNyTz/MGITK3yMlkGo7x7xPj6o2JB70GuRNwvJGQrvByLw2sYn+6kG/fYE8kPP5OzqIJCUGprAe+0LWIRzcfhnws8fkw9r+PXW/sw/sZzTrTHdhubgAJO4NNLuT1XrU58vmXdyJJ58mouvsXcN0CsfWsXtDMOn2r6oCna9C14ktCOFVDwSJ8O9YLCkiLZsBEUBiIfjkdegtuQgV1Xvq82C1+v5U+myqjZjFUbC2r7pPOLeqeZ7eNJi6DQptXETvz6QWtv+N6p6Ek8tntOkklRlw5vpoNNfnY1Mp9cEaiXS82W7jtXLpknkvTIKHPi21fgbVjfeWW3silnzhv+HPPj/55NWBuVue7Kr8Eyer4VS8k1wJz3GAqi32gxRpMtNm2Yo4+9mbS7tIbnZNaCWDMKjuvrhche43ChJOn2SCzQwY9zz/APwzQSCwq+a9AUQMvAclqZRjyiuJZT77PHb1PnJ7HCPdralsyT1Fmsosu5yK/nVLrcp/DJX1zNu7eewrced5l9CzO7HtV0Mhlsqac5UMV7CBmuX4+Ved+/wuPCHRMajASBl9bz3MQQLA7f81gMhW4/1x4f/OtVcRQTc0rAMk7v44hDuUcp8AhWs3UL8tg6jQwGeyGnT4RjrcS5rdXkeSyYqdSOa/b/hi7gPodp6KKFadvoFayEKSbpq8OcXLLxdgIqiSYg6PNIuMrJJtOMncWk+HYUQOgop5CM1GACdqa36JZZhPH8FC4OX3OqS0oPk2fQf1Kp69lkMZpKqs7Qq2zwyHuEBeDUSempDFPPeYqk/WyLwMPysI9Jkg7bWDDzbOEqPUvSf3r00ndi1g8QEBk36XARw406PYDgJdrhRX2+Obg3gXsjSwcU6omgWIEsLqPnmDD2TaR9TVxmQQrZ1aH8Gj5HmoNfnx9kgTxtdpmmpb2pMynmQNkWeDscyiJlMzWww5wOajLU1HbuI7CyaSUbLrJKMDt/bILMYR5t8mxCETR7RS+ZJ+tfZAz9zaYu57BYHapDwXvbmLBBkwS5B+6l6t8bFXGKdWVCNIoxn6jCVdQSweTOjDOB8Yd3a7QYGZiYZ1GLSsKUdrHMwc9jGaow5a7XNKO8PXswa0cykQWXY7OqTabvUzVs+vmwqfD4927wPG8EOTny+FHt3I+8DR9gJ5/uvGNJfHkylHHLX457xK94r7pmGaeZFSzcu7tYnGcO40qs+Kqrdlcwl5q3IWOPlpMy+rzps30rSutwe6HWvMx4hUQTHM7sADwlR5N2efCCvx7IIF10zTncihUmTdPpMAq+Nb1eq0+wWL2ez7W0Wfp+ZZo5tnEBvvfsjNXUhWb6EzC+JH5I0pY0+Hsghn5/zH9a54xSfqyN57pFMI9O+ADcVrpMafAiwOzIceZsai6L9Fwl88mIhQJrL0sbmDdZ+axVXYd4fkgr60am30FFWvC2bS/ymfZnjJHbTkBD+dCMKoybdD4R/ieVI2A53wWwXd7E93tmfPVSNABgs+faa/bf4UJxkIMc5KCblG4oAq9bBPF5m1okeXsq1dGADrltjEBb1Usg5XeTMbV8nTvV+Bk0n883QYm3HsQknJsAWez2InBw9qizRrPNGYz1mNGeOQQJX8wG1e18O1tVo6ClvHHMRZ9ItOXQKRBEUrRdC00EfoI8QLbToSCSQi9Mwfg+TK2AgXkFBmES92Uv3V1wt6mH/ooPyGR7X5ReDMI1kbtAP0+5YLJuPQ2amckaU9dxXE/BW5+QJHXPoOl9DvL9fBbIabJto6woTL636jABbyvGYnl6L1XgnL/rrdkM3Em3pYD+j9lNgPM8bTg6tlrbwnhOnxtI/PQ4Y/XmDNDbNwHUN9JgyTeee2rK+pbMk/EUUO1As6n3nlqpskGQ0X0hoKnqXV+WJEV6s3kqPD1Qzg2Y/arEUhmOwOLzNud7zhsU+eyVy9prTnHq3481aNsNT3w9caeda3FVShby1buWd7tNEWyrF+3bmDKjaG+q603Hx0uSvtKFfHztMMjuzdW80/uopS5vY6IsXF4yTyRpoA0rJLkZxNbj1arFWWR//DQyIn/cY3Mfxz0SXbpXURmMi3c4MnyqwZSeWA0iTNtHylrYxG0aMfWKytpB9L4mFdOKxg3hEvKEuma3SJIuboI/P+3A8nksgfTGdV2DOpDHXF9RgNvnxFO0Z/0cFt3k/Wwfj694UYGebH2/eObSknnywhiWVNQ0aZNXnntDE2VYXjN30IfalViV26t4/kS3v4ZM1cGhh5D3Rn/6MuLNHD73jjkhPjRdiTW4Uz17QMy2882SJI8U1oCk1lGdyEDGMp6Cx5NfgbenXmGNWbW+SmmlpNKG1DO/J0OYz37rCGbutsPHQ93t6p5HbubCfa7ZfwcCd5CDHOSgm5RuKALPKjK+XJOelVkTr/IGgpazkeYkiyx8P9HdoMOyfnfd9VOCl90P4gMvHSDZfnkzvqkqb1K4FqZ89c4YwbdNJn1nXS3P67oE6uia/IHi1oFSJ/1ARO51PN+nCn93hleYxqMKJUlXfOIlSTnO+AbdUkAzpz3wv+cMjirMCbR6cMRtyTzpLzbb233wRzY4NWjv61gR+x8G+W0zKZAlCaC7yO4ozeZyhmXiO2j1aItAQUA5vsbKu9H8UR3PqsacNVhcz3NmV5iTZfxAEBfWRGuqDx9e8Shj5FJCwNNk1SlG/noqkPtjO7kncD2oKswZ5Ds3z3jMTfpobCs+YI+qpQd2+zop9hO6Gkek8+JDynWiPba7miVJ7hcZh9kKkF70uW5Za6jVEBYH+h1apPFbNpjT3D3M81fWyf9egryTnzcFmBawyuwVWF7u2adVVY2cTruDgsaDQG0Zo6QKnveYlNMBgmFDn4iXJH3RGcuxwsIC8ajl+/6BCkV6gnSjfIaWzBNJigylr4tOPHN2WbuiCkF6VghW6pAJYgb2YZG5tLyr5/wZ9wlvLJI95jT0422m8uB6fM/3dUyoaxPjtW6eNq428ZPzJ7B0/IJTVGfjmkc4fVwWWyhJqhxiq//MxUAFpOHPHSpDRrZ4MGevzOM/j3sDy/aMx17FzXxPkrRmw5ol8+SRekpeNM4xj6pXpcjzM8hGy1vmNK0ag7yTGM+p03kKmqdW/KoZlsCXbcQXHjO++f9aR2DVuvSyDjixNq10B4l3JTDPUyqJjQymtuihM8yxky1YQu6XaU/V6mZJUmrLJnlt4rvJWtIGvRKInb3ebc7sHGL+rIroVvphLMFDNZQi+KuPvn//HQjcQQ5ykINuUrqhCPxCrEmJqee1qc7lKojDX3WwGHSy+UMg545iUK1H5rxKvEzRpRb8lEkhzZKkvt0gh6lvkTKY9bEHNOcBcrf3m7Kae0FjU99HMwYnxqm/O16SFDZNkvzMmDkx26RT+Y3sU98ciHu1s4nyD5ja1K8TvQ6bIOVp5Cvjmj2G1g6/tPQ0qIGNIJTUJ/FZl+dv18huUsI+YsdqaLhAilOzG23KWYzQcDTteGEPvsQdz9HPVlOvc6oJbb7+3Q/rO/eh6Vdu5drQUXywU+MggfTZIv18C/7LtBKQeG0ifzeMg1DfXCxSXAqWS6wpe3lojravGiKL4VwV/sTkxNvk00ebnbqvfwv9L8hvEj+pVzmoL23dAT0Xwrtyu8g6sTciE14mtWu8YECTDYxDbQhWWMoCiHO8FFTakI9fcXPtMo3/H5Ol9DP4+I/5WGq7bjPZN42JyllJO2b8KOmZOA7aG4j/V/hw4R6NPUSWwL0NyN0LA4yjm9k8lFkDIs++r03uZ8BL+70pm3D/EvniP4EFVBpjtuf371JfWjNtWcQqOuMDOlznwvvHJtPl74NfNiwNxNwZjoUTdzv3RpuUtcO3nlN2Jd9dGgfRn3PFktB1GvcAACAASURBVPNYy5wNvZyhkHjQddSleK658PsTG0Coa+9Kl3slqNXrSXjuuhIkH72WcWw+xFitCb6iolLiVW5ZSy8xcDKReb7ZpPa593jqUgef9+Qgw5O1xAUq27AC2v3XK3Mz8n60HtndFga/qgtB67OxoOtLEwmKWk7/hs6CigOzyEIxGZwKy7tN3/MjVnRPD9bJG+P41B/2w4r2PDAovyyeOTRImYqRerJYYsz6c7gDb4TbwqNqW4m14NR77XiJA4E7yEEOctBNSjcUgdd6myyKKJC0FZ6lFUVo6F234LdqqEDz+0bGS5IGGwfU7wS6qI0ulCRVPcW1iM+g5VIeBNF0jA1rwWSfLM7yrtDX0Yx7UvGHvuQ+qb1CSx4s2ytJWrsBhFrmbcptJgfJPwVkduEEvq29YUT7qwLxNefkmZNP3qnXqNCS+f09S+aJz5OgqcUQfJbBHftld0bj76ugPSvvQ/Nn7uNv86ZeLS6CqrbP4OericWf6e0PIl+spH1PTgUqqBE9PR+GlRO5ivxdvwNEv59InFZ6JShgegIrZNVqym1OlYGkkv18FdBvTmAx5yOuaeedCc4UrNoUCcK4svIlnephu/WDesv0NOO6eWKZ8gczHvD8paJU3eYLT14u+6kkKdedd00ksR89JrlYdW3GJ2+OVmxpBP14B4DEOtwoOBXf0qLWPjZ4RX4CKyzjPPGVtmGsEifvezViFUqS7I1ArVPZIM+VA6DH2Htn1fe35DtfzGP8Zp3hUUwgp5E/E4hfeEtdrYbDGRufy/3XzYurqdHblMedRd6WLb6oiXbmkmcfFuIt7qBYK57fbM/O1JcHGHfPp0GbXa5YigVjZIONBmDVeLiX6lQo8nTrIjybW26yaMwWhzeT43THApZg7xj9mN0GLzPfwpdbEl2j4EWQ/Ng3kJXOZ9jQknnyTyVJTz2ANZHesFH+W7GUvEw7l0JbMunvlReQ24nPpGv2PLLh64RlHhJEplDRHPzbmfOOullulNcEWj9dTZzDp4BxK6hFBmcz3bXLCYvzmRD66RKDpdEnMk8iBme1tf9DkqSDI8SvtgYz1ucOkcWTu2dI056sO5P9WIhdUbQ9TLQhcTcy1F01q80DxOdOu956zf7f0AV8V4KplHaZxvVvnFR1I+k/waamd9Msndy1jsnn92aztrrClKFwTNioj2DSdrlgvma6YyJdeO1uxXyEYNR8HwvwSCUumf0B5sgk3aKOQBanWFNLZegCz3fKQgCH2qM1fpoF8vZFBmLen2vRq1jQJ01N4PDYAXmIdy2kxi2ZJ8PbCdzkjrIQNKalqOcp+lOQzHOPV2FOrXVHAMd6RzVvJ6BWb6d9ziEos24LYdvRyfWiqBpNTZFWN3sU/vuP4hYpjmEcYjqSZPNqliT191LXOrIL4Tw2x2SP9nfRaA1uqJ57MVvnJnDJXKzh5KCAsBckSdaBLbolieCea/CGJfNkLIM+TQ0w8Xxnj8k9kj5sjoMXs80IvVcMprCt1iavYFaZrnne6RqNcqzbCm9WvMhi5LbTW8OxKCzrBVxNFeGkJX7UnAZUMf9lxbXj5KiYZeImn2MyBnsy+weLxhRu6jW/fgV58F6G9ojuQ6ntdocnYxGr5WYOUG5NWLZknkiSTzyBv50epPS1l3XKP5vFSt3mtCUv5HY60wQ8L87of5eRqnopiTngu52qeKUDKFXbPCmsVkm07h4njbA2k8qTKRPsspxOQxGHHxnQTB/LRm8YwMp2iueHmSqVgc2D6tuBHFqlLKJukVskSQXOuFIeNC6w6uZD8vo5iqR5k+uSedJ5AQXp9CXa7fZsvW4PYoPUj92R3aRuFLCHOTy5oaVHtl6UWbs3AOUTPSjeMlGFsGcRAPRofYA+uxyF+Yk3SHJ4LQngEt7C+uHqcklnw5CRmFLkqsVUMY1cxVwLbXBTyzL4ExZB310DUXIuYawtb8Xxm3t+4K/WbPj3p1PXVvYOF4qDHOQgB92kdEMReGcr2qjcmBJ+5alqz6OmRfrbRhvFgoAO/4gA5a1/ZtOhStLUpi6judYHgKrbukmr68veIklKvGVUHt8Cubem4X6wmdShgDYQ23x2r053kyKUNonJPR5DcMO9gvoM7R73Ki4D892tGDfDMTc0/coa0GdAJi6CLr81Km7DfMs8N7FknoQPg8rePUsbOrqqtXIbKYo+p0EDQ6ZWS2Mu/Vzb7KUnZ0ArsaEk/ycUg656N1G175SvSWOrt8vdVA28kISl0VwJ6hz0BzmtCHfR8BV42h5B2pK3MyaupxNBrOCgIg3dASro+ylt70hhjHIifiJJijTpjhNrXtJgFGjDv+XaGxHej/zM2Y19QaCqMN9b9WQZ1d2Sw0j/S3Cj7Y3NphTBiBQtkFxyD0g8YBu8LQoGKTaGgFKzy5M0OkHb72gFw3jk4YKY6cM8Hp3eo9qwX1QqJHibaZ5/vBcE5p48qCx3U1nOAmm3+BGYKpmF59NmA9JK9xPyn8aC2mP/RWBqaQHePQaxFR0FMbsObdJQqHGv+YG4h/1AyosHzUlKUSHqz8AqiAhnw5lPB6dMRSRi4UyWMo+cVw6qsw95ikoFvZ5/hYB6YiubhyIifXQlGEskOteM8SVQ9pgLLoH+qfVyG2G8PDp5d/NyxuKIqY+e68K8rI46q8JPMt4rR/yXxA9JGutnTD0rTYpgiou8fHn3gz5YiKfsyErB66w7F7flK9mDtWgqlqDz6XDcN/VOyKt7CLw+9k8XlV+HjJR/ztS16WuWJG27k769FDqn+jHGYV00FsbFAPq0a5A14aJToJbvx11XngxKn8hgjNoa6PfGPsb1uYdu1+oR2nU2EKtx96/ovwOBO8hBDnLQTUo3FIEPy6TBBZJE37fOpgeuoOnq3PALptjR/LP+IN46jyEF94F8ZprxZZWvA21EncEXWWMCEV695brwTZDxnqOkA7m7UIDotAvI7TPu1dpvtnl3HwIdhUfir51YTwArP3lQLf+GRn1pM2g1KgAfdWE8aY/uU+i+mBEPrejg9/4fWr5kntTEoaELbgOxpRWeU9UoPGmaxQe+M4J7mv8ZJNGZ36ItviDjAZNq2L4T5LBpGu1+wFQlXGZbo2OeaPY8G5o+YhtI/HwJfsBI31Mq2UYwLOcVkHznWZ6XnQSPAuo+r7m7eKb/bnyM3qa64Ytt8ZKkrdtBJOunEuRkB61ELC6ZJXKaxO8XO4FVsjA9raQ1jPHcEZBWyDr+P+MLQll+YkZFy8z27TjaXl0O4vE+QlykPg3ZSOqvUe8AfFrYhKUxbyog+pPhpdA4T7k3MT0mfZCd0TnQo6+nSf0c81TXOOgzd5q2FtgZq+dasNRy5oiZFATtVI0bJRvOjSC3H18iX7rbQPAtSYWSJI+Lq7QuiOD8yQp81uHjBPEzI0DVxTm5muhiECInkacT1QTREhpApB05jNV0o7/yzlIHvGQWtL4iDrQ9bSEzsxG9WjOExTm2Hys1NpcYQ00jVs1CbLHGq+F1+zqQpG0Mmb7QSGygK5FnbBuXqo2fvbSYeaS/u36eeHrA52lnYgHD059SkzOW61QpvmWPDsa4bQVBwoDpdrkEUAZitomkieg9rE0rX6WcxoVQ1qGzz7oq2401wM0E1RtMBdDLdfzGafqcPplOf1p68J1bF+F5RwSyPPporHr2McemJ7Dqg4qRwdxFYnJD6fDob95+QufMxsaAgflr9t+BwB3kIAc56CalG3sizzL8Qhdn8ROGnJ1Q++UtkiTbanNCcxRIdOR5/HT+R1OUtYCvqGQjCCjmCGlcIU7GB1eBFr6S+ZDSyslmmU81m2Cq0G6rA0CbP28dU4ZJHxzcgk990mxEmLaBYuo939bi31N6Mu1FNHtCDayqHUYjTruhhQPuctF4GSi1+G1Quz5//TxxCga9FD1hahhHxivwPzm7MeA20FRVu0GLq+MlSdUr3GS7TLpX0Aiof+QCEfZvbcMHvnIaX5znfIXiSsjKsMLhU8sxU2BqA75hr5wwrWrmc8BHSJ+KWQRBFTU1873lrM4W7sk8QaygLBJksjIRiybLIJK5hXb17AalZhh/oXT9pVOtBZCmexIo27PNW17r8HX7OPHd8BHGdXoPGRU9Hg262xfE9cxl5GRmBeg4uppspTSDZo5OvqTQXBDOtqPIRUckMYCGbJ5b2nZA21eCntXEc4Zn/h977x0e13Gei78DYIFFx2JRF23RO4jCToAE2ERKojrVKNuyZbnbceI4ukn8SxzH177xYzuO7SS23FQsWb1QEil2sDeAaERvi7rAYlEWi0VfnPvHO8zF1c+mCcUm79rzPg8fENiz58x8880371dmDpldfzdj/Qt/fyfGrGRq1969qn+Xz1qVxFj6JSfloG8ahX4TGVjp6NwNy2I5us/8BwCgYBffYm6LnMdpjYw2doH39ppnO04XUC+0gR4MhNC7NWewDDJZz3FcMtFjMr3HvNP0JzfCd5qx7jDb0wCAMzOcY1uz6S/M+oxhvIYMUrcgzz4fJeucX00vJvy9LoT4cb5UH6ZcZyOlR7eBY9Tvx7G44BOHKnm++j2h6SuWyZVwlsQGDzGvUJL0Dwg98TgAwGrg35aiZZVZEvMUuuodiJsi659fy3a8/zq91PRp+QacaFlF0pCIsHx6I/7vM8Y/HMdIwJgc4025xbgqq5BGzIylZ+WwNHNmgEy/8ODr8JfHX4/LTVK5iRyHkwZ6KV7PUH6xq0owkEtbOTqVct3+KwauoKCg4KG4qQx8zS95iE74Dj726OUBGAxkBdHzXHEczawgKDMzpngqrQlt8mD+AY0rnnMPr227xBVxVRoz5wHz72AaZEeObt43N5/1zMOXWWXQnvgw7ltLVlTVwvtNg/GqbAOvDbf0otuf9/6YPCr13Q1kanPd/P2OQbKOX9V4o2APGV/okZUfUhR4gd9xb2EdanrdDKJ+wGMErlbxWZvluzHP+XDDUWLzKuiSWOBv0ywAgHVryJT8Zskg9fLNQW8tmbFUSs/Av5Xs+kl5+P2JK/x5LtGJRSlLt3x/4tBR/l76NVbszLzeiu4IMplwEzdnbBpj28/VkTF7PUFGcabKD2mLHL/22JUfsZudxXenHnXQ86qYHkBLLeP3GSHUD7uBNdGuM3xDenZGLNre44aQkE37AAB9dRzXGT3Ztm/cMwCAgNlvYN5CL+c/5vlTV8XxdeQw5vtoSjjq5bs/u6ySqerkYVmBsub3p6/jfj/K60g5GaYtWh5J4DQDAMqHeQ+rfyO89vNvJz5LuX10hXIJzWa8e3aSMd1o9270vE8vqOJexmcvvMnfozpZwbNzVRQGHdQbh4zPpsxRv3oLqSN5KdSD/b9eg9TPkrUWvcw3DPWkMP/0Xu+bAICHeoPh3sNnjR6lF1h5Pz3a9P/1PQBAv8ONti9xLuVXk622LDAmv3+Oz/xoqHznbUgyKgY5VydmtqxQIsCaLN5Xa+UGIfvROrQm0lMKN/NZoXPcazHXR283NikXnRHUCeGmPj0UzU1el0cYx89pp94uplbAMUBWfiKeXu7aGd5vpoRzpLNxGIu9nFsZWzgXUM8NhGH30zv3bTWhQR7BMHnkKQDAtXedFAwwT1cn3+naM9aAtXLT1bBO2pTfUbCkGLiCgoKCh+KmMvCrGqsBwlrJnsrip1GbytVtdknGaccZ86n0IysYeHYSugWuiimfJxNyX2JsUg95WFG+fA/dOzb4TZEFJstjUMPauTKe8ufKuDHlKTxb9wUAQPwAGW5MAp89Nke2NJeeiOluxjZfjeVqG9vM2Gv/OBmFNYivgFvdmwLvasbJ5+83r1gm/XLHV2QjPYSMMD2Cz/KoWGcU3+FnlEfNJg2yn0G+x6AlkCHtYcgTtcdl/XIF49z2BDKcFHcV4E0PJjWGF78yIo9gLSVr9BHBKHxQ7i70ooz9Syiv/pOM1yaEWnFHEGWxJHeg/aSQDHeP3GK8ADL0uK3bYThGBuKzfuW7U5FO2Rd8X+483TCKABJKLKQyFh6XTS/Me5hM6ZwtCXc9xjh73BHKYDGT4/rzeLLIe8bZ7gs+L6KwjnHIiQzWdDu72Ae93Pp81u1G4F08+jTTi1Rp2ldWNWxkTDTWuw+/aJdHqx6l/E1ZjGf2hLBO30tWxthPAJBbznMHClcuEwDGEHqajnb2rzT8CBblq8AGFywAgMQv0BtsklUgx3xdKLXLnak5nEe/ki8miD/FqpSpDlY0RS88B8tpMueYRR7RvO8imemAmYz1gCsci0N81rZ0tiPy+/8OALCOc2yGFxJxh3xtWyMoq7kQzvkvHSezHLuPRxeMtV/F3WPUZeeXL8ue7rxhmUwEUwe7BCvbUsregb/vEwAAfQZ1t+7b1CefXRyTAm8DTvbwsLXbg5lPe01W2wx1MA82qeN3s7wvwepPM1kh9xUYHdQ5YacO1fU1w7uCsf7wA2TclWbO581Pc175hRuxqoCea/MOHlp19tf0Uh8v4bwxWKifFb5rcL6ItmnG+/qvmbupBnxhnXwRrR9d5K6RYqQ9x9KZ/o8woZgyy0D+7Cp2MtFUhpl+CmHNHMMM71rlm3S2yVPmfkJjH73BgfAqGruIIA5W95h8p5/XpwEACc77EFfDEsO3k1gedueddKPN/0aj0B4i0FAsN5O8zvDDPnlOsiGWE3awj8LWeWtYlCWP1u/SxcInb1wmmpP9rgmgW7thajNOZXAzRvqodNXWcOGb7uHGiyl7O5JbOEGGgunCX3qMxnnLNMugahI4QZJGf4FwHfsXuMDzGgb2ULYVC5zIrY1jaOyg4bYFMwkT0coxStpBtxMZJRiU2+sDMpiY+XgrjYU7gIbJ18ZrF2YDYfGicSg4w/dQ4pEbP3uvdVSeSreb99D5JcJ25Ze89zGeVRGZTHnV9nCBKA5uw6s1VPqIDRz7UEMlAODODibxwib4ncLWUNQaOJ6+jfzMO41hiRgHr0lJNKNxhPJqjubfdrQy0dzWSRf9UvE2pKQwiRgsX8h7zMWzwk+MccX5Hws0MLagCqTY+P9fNVHGf/3ZGxYJAOBMF8vsdkfR6LwV1YqL09zKn3OVxGX3qxzTkUcYUnMuVqEqkSWwow1MEm6aIlHRdExG9kk9S0qZgO4AQ2bVX5bhyjOcY2H+TOTOtS2hZAO/bz9G3Wv5CPvacZEG6QtLaeiSp/ldGeL8Wz3P8EizTq7EB6ivHy/JQlMN3+PafIqhwk/dfeMymX6O4YeljXIT0dRuPJbEtu7/Oc3bPRslidBTNlU9TXiojTIc2MYE7sQIdeeeESb4r5ZzwblszEXQMG3KZSsDFvZxjv+qPs6HtdneaGqiDbJH0H6Vd1O/Lu8kCcmzG2GTRKz8EBeqI4kMbSGUxl8v3xX8085auIOp+5kJ9123/yqEoqCgoOChuKkM3BBJd0obI7tNCLqIun1ctQPlLlqXjSt2dyVd23XbGlDbSTfUKE/Km03nSjY+REZjLfkWACDUlYqlRIYkTjfTvUkeoisUbCZrtJ8pRq2szNnp5N8OHzcDAL65kx9YZtqwNMCVs2KR7WiVW+j3aXS1/tXAsseSM5swFmQBACxsT1uxTDZsltvvh/k8V/V5VGgsH7RvJcturWb4xlTLsERiRi56NzOc0j7FzTUBstzLJs+hdp8l2/Df0oDedsrCUMbztQtO0h02BvNc6PW6Egw8KhNkF/hZo1uelCbPA588EobMYLKKiQz5BvcohhROePEwq4dPkPVnxI9hIp6svCUpa8Uy6RhkIm7zSYbXMisSEbn4VwCAU3481c60nW5ObBVZpH5wARXBbM/FLjKw2Uiy00krf7+ayFDCQMB7SLPSmzn5STItvMVTJleH8u+dtmocSyNjvfsIPYvaAnmKXCTZbkpNB+zr6bkE2Cm3xUky8h8l7wAANFWRyRrX9MBtpGdgWgpYsUwAYDaa86ZygKGKVX3xCJWllpHy4KaW2xmiyJliMjviBS/UraOLnpBL1jmWI9+2M0VvzUuyz5rcQqQ7LQCANQ7e1wy22dpNPduqzaH+Mr+fHkq90n+PMvjYg/T0/t1iR8ZhMtHkaJazLnrRE9PHSD3z5d+/2zWGsO30gvIcKz8P3CuH9iJfbqV/wz8f9yxwnvglcEy6bbIEuJvhJv/HRjEUSp1o7KMsFwOpc5e2U9+DluRhV2dP4sE56pU+Wb4vs5o6rcujR3b6fBx8ksncI7Iomx4/Mvtib8p4Nvgt6FvlW3uSOdf39ZUDAPY7ngUAlMaypNHpvx0bpumZ//g8E8P40m8/lVAxcAUFBQUPhdA07Va3QUFBQUHhQ0AxcAUFBQUPhTLgCgoKCh4KZcAVFBQUPBTKgCsoKCh4KJQBV1BQUPBQKAOuoKCg4KFQBlxBQUHBQ6EMuIKCgoKHQhlwBQUFBQ+FMuAKCgoKHgplwBUUFBQ8FMqAKygoKHgolAFXUFBQ8FAoA66goKDgoVAGXEFBQcFDoQy4goKCgodCGXAFBQUFD4Uy4AoKCgoeCmXAFRQUFDwUyoArKCgoeCiUAVdQUFDwUCgDrqCgoOChUAZcQUFBwUOhDLiCgoKCh0IZcAUFBQUPhTLgCgoKCh4KZcAVFBQUPBTKgCsoKCh4KJQBV1BQUPBQKAOuoKCg4KFQBlxBQUHBQ6EMuIKCgoKHQhlwBQUFBQ+FMuAKCgoKHgplwBUUFBQ8FMqAKygoKHgolAFXUFBQ8FAoA66goKDgoVAGXEFBQcFDoQy4goKCgodCGXAFBQUFD4Uy4AoKCgoeCmXAFRQUFDwUyoArKCgoeCiUAVdQUFDwUPzJGHAhxDNCiG/e6nbcKgghMoUQNUIIpxDiS7e6PbcCQgiLEGL7rW6HJ0II8XUhxK+v83mjEKL8JjbJoyGE0IQQaX/s5/j8sR+gcNPwNwAqNU0rutUNUfjTg6Zpube6DX9oCCEsAD6padrRW92WD4s/GQaugCQAjb/tAyGE901ui8dCCKFIjYLH6IHHGnAhRJEQ4ooMGbwMQL/ssyeFEB1CiDEhxH4hhGnZZzuFEK1CCIcQ4j+EECeFEJ+8JZ34A0EIcRxABYAfCyGmhBAvCiH+UwhxQAjhAlAhhAgVQjwnhBgRQvQIIb4mhPCS3/cWQnxPCGEXQnQLIb4gXUCPUOIPoFAIUS/H92UhhB74vTqhCSE+L4RoB9AuiH8VQtjkfeqFEHnyWj8hxHeFEL1CiGEhxE+EEP63qK8fCkKIp4QQA3LutAohtsmPfKWOOGXIZPWy7/xXeEqGW16T8nXKebjqlnTmQ0II8TyARADvyDnzN1IPnhBC9AI4LoQoF0L0f+B7y+XgLYT4OyFEp5RDtRAi4bc8q1QI0SeEqPiDd0TTNI/7B8AXQA+AvwSgA/AAgAUA3wSwFYAdQDEAPwA/AnBKfi8CwCSA+8Dw0V/I733yVvfpDyCTymv9APAMAAeATeAirQfwHIC3AQQDMANoA/CEvP4zAJoAxAMwADgKQAPgc6v7tUIZWABcAmACEA6gWfbtd+qE/J4G4Ij8jj+A2wBUAwgDIABkA4iV1/4AwH55bTCAdwB8+1b3fQUyygTQB8AkfzcDSAXwdQCzAG4H4A3g2wAufEC22+X/vy7nzQNy/v01gG4Aulvdvw+hL9f6ZJZ68ByAQKkH5QD6r/OdrwJokDIVAFYBMC7TqTSpS30A1v5R+nCrhfghBb8ZwCAAsexv50AD/gsA31n29yCpbGYAHwVwftlnQgr3T9GAP7fsM28AcwBylv3t02DMHACOA/j0ss+2w3MN+GPLfv8OgJ9cTyfk7xqArcs+3woucOsBeH1AX1wAUpf9bQOA7lvd9xXIKA2ATY6xbtnfvw7g6LLfcwDMfEC2yw34cuPuBcAKoOxW9+9D6MsHDXjKss9/nwFvBXD377i3BuBvQaKZ/8fqg6eGUEwABjQpKYmeZZ9d+z80TZsCMAogTn7Wt+wzDcD/5SL9CaFv2f8j8H+8lmvoAWUCfEAuH/i/p2Fo2f+nQWN9PZ24huV6cRzAjwH8O4BhIcTTQogQAJEAAgBUCyEmhBATAN6Xf/cIaJrWAeDLoBG2CSFeWhZO+qDs9NcJoy2X1xI4j0y/41pPwkp0PwFA53U+/zKAVzRNa/jvNel3w1MNuBVAnBBCLPtbovw5CCb0AABCiEAARgAD8nvxyz4Ty3//E8Pyxc0OMs6kZX9LBGUCfEAuoGL+KeF6OnENy+UFTdN+qGlaCYBcABmgu2wHMAMgV9O0MPkvVNO0oD92B/6Q0DTtRU3TSkGZaAD+5UPc5r90ROZS4kE5exK03/M3F7hgA/ivYoDli3UfGH76XdgL4B4hxJf/O428HjzVgJ8HsAjgS0IIHyHEfQDWys9eBPBxIUShEMIPwLcAXNQ0zQLgPQD5Qoh7JLP4PICYm9/8mwtN09wAXgHwP4UQwUKIJAB/BeBa3e8rAP5CCBEnhAgD8NQtauofC9fTif8fhBBrhBDrhBA6cBLPAnBLpvkzAP8qhIiS18YJIW67Kb34A0Bwv8BWKYdZcEFyf4hblQgh7pPz6MtgiO7CH7CpNwPDAFKu83kb6IXcIXXha2AO5Rp+DuCfhRDpMvFdIIQwLvt8EMA20E597g/deMBDDbimafNgIvJxAOMAHgLwhvzsGID/D8DrILNMBfCw/MwOrorfAV3oHABVoPL9qeOLoDHqAnAGNGq/lJ/9DMBhAPUAagAcABfIDzOx/5/D9XTidyAElMk4GHoZBfBd+dlTADoAXBBCTIIJ38w/Tsv/KPAD8L9Ab2IIQBSAv/sQ93kbnHfjAD4C4D5N0xb+UI28Sfg2gK/JUNgDH/xQ0zQHgM+BhnoAnD/LQ67fB8nPYbA44hdg8nP5PXpBI/6U+CNUu4n/O4z85wXp+vUD2Kdp2olb3Z7/VyCE2A3gJ5qmJf3eixX+7CCE+DqANE3THrvVbflzh0cy8P8OhBC3CSHC/0wUbwAAIABJREFUpAv5d2Blgae5fn9QCCH8hRC3y3BUHIB/BPDmrW6XgoLC9fFnZ8DBsq9O0IXcA+AeTdNmbm2TbjkEgH8C3eEasH76H25pixQUFH4v/qxDKAoKCgqejD9HBq6goKDwJ4GbetbFpx/ZqQFAfAjLtwNmE+Hbmg0A6Nr+NgDANG0AAAT2jwIAzpR4I72RRzIEhDIBHHD3EgDg4D9FAwDuin4fACDCN+L00iQA4D7nFwEA746wLn+ztQoAsPDgRVyyFAAAjPm+AICxkRAAQLjveQCAf1sQQgwjAICg0C0AgAPxwwCAkqMtAAB7HJPNS2ObMG9+DwBQHMeKpE998c3l9enXxY//cg23suXzmATjgB1DSxMAgL6j8wAA52bKpNC/CwBwbFcsMg+w8CEv5NsAgMYLHwUAvJrJdv6PUR0AYLEqGxeyWO6cCN7PEs7PwoK576LGcRWP6qcAAHWhrILyusKy8JBsyqh9sAv3mUMBAAev8Gys8HCelqkFLgIAtnqdZRuEGet32QEAI69FAAC+/vRPb1gmX/2PlzUAsHbWAAAWkhawGJlD+QyOAQDinSxD1ml8TrV+GIWz/FvBaBgAYCiYZ3tVzVFuCc5y9sk/FVXBrQAAQ3gbAMB2leW8YduZDjFc1WN0ift8chb4/Z7oTQCAiT62oWIwELV38JA+WzH1a+5N5n0zQrh3w+nF9k20mLD143zmO2+uAwC8/p0v3bBMAODVL9ZrAHDQchAAsJS/hJHQWABA7gynsrVVPp/H3GAioA5BXmb+/3bKJVZj2ffQSBYAIHmcB1j2+PYjwo/bKd7IrwcAmE5RDzYFXQUADPt04wq2AgCiF/lZvP0iAGBRx3lqHo5EdLQDAHBspgkAED45y2f7sJ1dUfxp9hmDKF4PAJjr5bV/98Q3blgun3n62xoA5MezGvjiEX+sjuVYNHdt5DMzqPdLMbQxkymroXubczXSPg4AmNnOo5RGR7jfa8YeCABI9C7FsagDAICnbBzrjsUQeW0wAOBEyqtYFcQ5utVKu3AgiIVt827aFNPwo0hPswIAXH2lAIC2cH4WE0JbM1lFGTn2pqKtmfMubpRyeuafP/JbZaIYuIKCgoKH4qYy8HILGdvFJK5OFXN1+MEdFgBAoDsfALC5i+xzLpXXJk6Noc/fBQBo6OKGt4ef5Ur1kWwyvwv38/0FSaOHEHCMq3nt0OsAANsdZOBR/WQZrUlJyB+/AgAYCyF7CW+8FwAwsacdAOBTHwLouS+o1knmYT7HFXYyjOxjULDdRm0cbeN8h0CNje371ApkUtvNZ68bmQYAtGSeh/ECnzGQzU1gDw7xM8tSOABgz9EcNIaSZSzpngEAxNjPAAAezSgBADToKb+c7TGwzp0CAAQF8Zr+Fsp44X62wXxxI8bslQCAgBL2IWGyAwBQNUtvJy41DT8dJqvcVkL2Ej3GcagfI9N9I6IQAOAMGUf8UTJ5V+b19kn8dvRH0ItY7yJ7b6xPhbb2MgAgap6sOFLPaxZ1LD1Ov1qChQdZtl73xmsAgPnShwAAue+TXQ/r6XkMZD6PfAsZ1vglytiXZBTtPfx7WooP/C3sgyVRPqOazDvBh5vxWmcuY9jWy/b8jO0KyOfPRXlt+XqOQ9/cGA5+7x4AQFz28IplAgDni+gdFLSNyHblYNgRBQDQpfJ5fgH0BiOPU7cPFY6jsIdewFQl+/FWP8dkVyo92IlIMsHOC0nwMx4BAHzNQTb97UwSv5O9ZKhJkZ/Fqvr/YB8NnCNjIfTkAi4wnzbs/SyMQfQIjYlkkmvOcpe+LpGHFhaOUmcqo+5BRt1/AgDeiV55OX3cafal6zOvAgDMCbsxfZaDWZROXW4u4bP0dbfzS3YvBIXQw5+PpQ2pkWx6wsI+FQlWFV8tPYaK4+zf6STqz9BIJQCgfInRg36dL3rD6fn8xkkdjLNQjimJ3+B9J5pRpacsZmY5D3fGkK3/8kQ5AGB1BPcI+Y2fxGwddSQqxXzd/isGrqCgoOChuKkM3CeGjC1zA1fqlxyrUN7MlbDRyFXOmkPW05T+CgBA/6tyOIoZe42aIRN1tTJe60xmDC7iGGOUoX3l+Fg6z5Y5kM37rXOdAwC86k1mun7BhNy2OwEALYFkoidGqvl9K1fAsbV2LD7HmFpECb+36M34brvceF/qIiPx7S5FUso/AwDOrnlkxTJZG0tW1OXFfofV34Xz28gKd02xX60tsi1xGwAAbfY2tCZypU/uPAwAuFBAdrzPmg4AeDu6m/dt24SirZR30As89nnpYcY3bYf5e+ZWG7x/SA9oJpveTsAutmHbObLNlhENphLGbiO8GKu0XCBDzt/NGLstnIyn2+3GlJOVmUudK3+rlEGOgy2KjKfBqxm75/hMZzx1YGGYLOt9B2O2E8MXUXSYLMo3hqy0fYoyGclkG7IW6E2ssQZCOOjlNK96AwCwdoBeofcU4+hNXpPoz+DzZ+oZSw1cIpN9PZFx074n7HhimAzcPifZmI+M+fbLmHQ/r+0MT4dPhA0AoHMt34194xiuY9t8gpoBAI5RA8p6KI+w9Yzz6sExaL2DPx/QueAOZcy2oYo5hfs/Qp121pJlr/Zie9pnc5GbxfzGO7N8RvZx6px3EOO/zo4h6CM/DwCInqN8fZsY252Xena5exuipxkX9zrFPjsM9M4m1rO95nrqzqHJI/Dzo34XvsIxwUduXCZrN3FMTn/lbj5n0wLmSulhewWYAQBBNdSH+OOcG51bvNAwQoasNdG2RJTQoy0O53ycFzIG3eaHsTB+PzuaOQzxIse6u4S/r1qcgPXgM5RFKeUVE8r5824PvZVkcwAKIu4DADTpKgEA5218xkf1bEtjGb2mGUs6bi/iMxsylq7b/5tqwOsjaAQjZhjOGO1ZwHgaXSCh0ai06NnwsMOcNMI4ji0GKq49jxMqIIiDluigkEalq/SGsGF7AoWwtHAaAJAgOLBeOhpDx7QPKtNPAgDcyUyM7VhIBgBcbuBZPKHr7AjaS0Nm6q4FALy3xARWoIFt6PfjYjSQdQZXJ+g2P3FYHkz2lRuXyZgMD12Mp+JU5LmRV83+XXIz2TG06iUAwOdS2IaumjJsv8xJYy86BAAoBw3whQ4a2ci36VImF7vw5mmGkdIzOclLWnjfKjDha509gpwguuVh73Bh6k3eDQDwWWToYnYxDVlHOTaDuUz8BaXz2vZqGs4YHWU/J9rQs4oy9R1d+cGG3j58w1Xw9zYDAApWx6HJhwYgoo/9PPoAE9fD/Ryz1YmrYLbzs0sFJAVPjdCgvKnjIlcbw3tEnjdjSKsEAJTP07jVLjKxrUtnGK1p3AvpQZcAABmChupsEI3O7WsoK+fTFZhMJ0EYTaE+LIwwVFDlvwYAMDn8Fu/hY0NcJt3sjqo7ViwTAIipsAAA9vexrY8ffAnN6/j/jHdpVGxRJDfJ/TRiHbMmrIvhIje4xMV4xJuJ+K0BNNLT7/D+/omv4OwQx80RQ6Oatp79ap+iIUkYn0frVpKDqKOVAIALWZxjye53AQDGmUh0ZmYAAKa8SKTawyjX6UouaHNFDKUUD4TgnSv8fkVcrezp1huWydEjXJx13+T81tXP4mFwYdpv43z0jeB8iimnXgx1LCIwlATIIBc3XTDnQkvnDgBASiSTsHkBOozNc1FuOUOi13QHjXRpNefDWOQCBkM5tnMXuADqAhiKSQWf3W2IQNjbnEurjEwmixnqUbidYd+FSwzXhkx0oNpImxb9E44vdv32/qsQioKCgoKH4uYy8Fi6bl4DXM1NcYFo1MhU4mWJW1I0V6njTrLa/GEvLBrJsi6ayRgeP7gHANCxh0xAjPPaHY01yCwlq15oIhvsXWRyJyqKK2LWjBVDY0xcHB2jmx8VwdXOZCB78TlUgf5glixOFPOzqQTeJ/ofuOKH7KXrlS3qsONhrrojJ3xXLJOhAPZ7/XkmWuIzxtEawexi5yzZ6+4wuqEHTvNnVsaL6OhhAqp6mmWOeXVk8sWLZI3dhWQJjvWXUSTDPQP9DDldlKGo4hBSr/P2ZOjOkUVffZgsaHc779NaysRpQO0F9Pt+FQBQOsRSq4EeekARfmRt3qkW/m7Toa2dz0jeuXKOYHIyuTNwL9la1MQ4kjLYv5ERehaZdWQxhX7FAICOzDE0DLE8znCeHt5pH46HyUS2t/Au9ahLH4ACGQt7JYseVaqbSdsD02Sr2RnzCDnFRFLkPJl8Ui7vd/I09UTvaEdKMFl5SA31I3ec47jpIYaVOi+TOjlC+zHeSS8rxnntEMi/XZFcEhvpieb207t074xAtI1Mct0bbNO5R8lEa7M5tX339+FUEb+XsZbPn2lg3+t8ONd0EbKN/h3In6OsIqZ4ztmikfePl5aisa4Mt/X9BADQlUjvOf0qQzCBpUzI++kFtCmGlqJkWXBA6F4AgNH5NJ/VQV1eLBjAw+9wnIeyc1YkDwAISaB3Jd6jtxafVIOeDo6zXzq9ALeedqLVi4x5eCYNFUEc97OhtAWpVoYwDZlM+J8LZLjFWj+P2FbOgbh82qp1cprHlvE5baH+yKznHLjaxO83uhmenMqhPjniM2DVMQndM0i9igujjTkUTvmZBHWpJCoXo/3Ud1dG93X7rxi4goKCgofipjLwTwyQJXSYuNLMz+tgFlyNjuvJANMbyKiS72Bsyr3fG6NVZM9PurlqXp7iyuXLHAI21PG+9TF7ETrF2PBfxXG1fT6I8b7O5xkPC9iTAtd9TBoY3pAlctH7AAC2cbKo6XInJsGkjfEK7108TsYd9nHGEeuOM95nyk/BJYYJsX1q5TKJj5Lx40HGZ23eZ+Gv46pbGkhW0FtLz0Ufw9j9EcOncNtWmUAR7N/AIj2F/mky80gTWfeJhZ3IvvoLAIBjxsI+hZPpvOlP1pJy9DiGPsfjigt66JUc20NZ/301f7auLseJvucAAM5YehzH5yjT9UYylCWNMXqf+ZdgkK+HWN19/4pl4mcwAwDCxhhr958Oh7ZARuu+m/2dXnySF8+SIaZ3+aAhaCcAYM6L8UiXL72A1DBuxKhKfxAAEJN1BdYdTGAH6pgPSLPJeLDc5JR2bhX61zF++UIl9WVPAjvlv8SEZ9jlQIw08D7uKbY1rYf07I395QCAgBTq98jYBDbLUlFryYc7pXfYwRjplgDGTNv0JgTbGVt+9m/oyWVKb/TxQOrpv63pRsQgvargBbJC/3622TuT7NO9gfeItPrA25u6MvmyfEfFHZS72UQmnXT7JZyq52cZdfTADpTRjHxSMsvIuQG87MVJUWFkTHlpijLUL7GUcniWOrPb9RreyKYXqTfIYDweumGZ1HeSZWvh9EpWZ2wC7qb3ONVBFms8zfLEgA3U19i4VszqqcMOF8fENkNvNy6BMorV6BWUjiShPo6lmWlgn3oucv5cyKGuTMOAAgdth+27LFU0v8ZcSOMIIwE7a/4VJ+QmqbWxnNe2bP6+M5/yPzpC7743SYPhXdqF+bmL1+2/YuAKCgoKHoqbysCX8siqhUw29wYGIH8z2cDDv2LMrHcHs+mxdbzIx1sHnzTG5d7K44YMYw0rL6KCeQb7a7lkZTuDRnConavsQASz38P1XKNifRmva9f6kfZLxocNe8nWJ5ysaPD15bXOq+cwG8Fn5RvI0J63c0XN7voxACAebOeV8FFEv0Dq/cxnGNdbCec06clmtNvJAAqqQvGi3BCUuYmsqniATKIzgpsj1hzvhTbLkrDuTYxnnneQLW63M955xYfexfoFwCkrfTZ2WgAAQXoyOUMyY8ULQZmoTeXGhRz5BqkHRnjfQzZ+p3d+BmUTZE0OyXAfSWUst3eGFSsRl/j5XZnl+MY8WWq1lcx2JXUXthl6aNU6elrbQsy4MCzLQHvyAAAn3Sz7KpwgG3K5xtDvoDr75FAH8tIZJ7/kIiu2+vOE3PSenZgxMuata5YxbB9W7+S+LUssdz2DBB3ZbEweX7hzTkeG6d/PmHiEzwI6B+np6YvMAIC+CFYqGHoZi3b5sUolI7EYlcNkXnWLlNM/rkAmAOA3zDGd7+UmtXHd3TDKrfrGHladYJ7j9nMr58RwuwFJ/0QW6P6pEwAQmsT2D/hSLqO1lEGAW4PPTjLtrAbq/aIfPc2zbfQ+vAy1SMxi++e86OV9/lVufmpJISM9uNoXZVfJLpv6OI/jNnP8prp+BACYTfsmAODpF6KhX/NDAEDq+fIVSgS4Zx/72VzJ8WvsP42BQTL6hFl6k2U5ZLH/EsLqlm0H6zGRSYa9IYFtn2naLr/DTTaT/vRkj84tYb1GNuzIoofZa+EY3zFHT+pXdi/kLFL3HDWcE2NJrIXM6qCNaSpJx0M2RhIC3S8CAEaO0Rs5HMP7rm9gxZKzIALOQHrkDQHp1+2/YuAKCgoKHoqbysBbrpAB2O1c8bPil9DTwtjROo2MqnGQrLO8h5UObaadMI9ys8Xqy2QOqZcZpxp+kuxg00UWyJ98eAyxAeR6A22MK52S75v96m4y3J7KZlgyuEKXLJC9nZ9jPWZOZB0AIMNrJyLeYtysZTPbtVEeGmTZTcYV20u2kd7jjY61ZPtlh2R6eu+NyyT/CPv/T/dxKKINJZgtZSXDwFG2bzaLNalOG+Uw7hcCawaZaJSDn9lz+XtAK2OxuW7et7b5LFLMzJCH3cv6WIuF7KO9W9bCWocROcxa3IVBeiNtyWTQUeE8ZOve8Va8PMP1fmyeLN3aS+ZdFMbfF0NZZ/uq1Q7zoxxrx4Xlrwi8MTj6Geu/U7Lu+dARlLXRa3D6sp8RaWRImJNe1GAmMsvki+cFPb3gUxzzmGl6T4ZVHwcA+M7oYIiUm4Ry9wMAhmWexVpMvbk6lYtPDpOddcp68sRnyThNKfRoaosGsDqDY/STE3xWyCbKzb+T9xnt530Lg/JQ3/ZzAMDXt1yrVlrJoQuAazX3UbywndUQt1X3YLCAcg7uYKz5RB892n3+9AoPR2YgvZI6cUljnbxm5LyJusC5Nv1J6tBIkxnuScahE/fI4yvOM+67MYfMfKZPQ7jgZ5VFZIeheno8aQ56rc73TiHgLyijqFcZ+3YNUN4Rf8Vrkiv/JwBAX5yBRX+yX3fwSdnTG38H8BG5GSk5hPIONUcguJYy8O2gPrYW8tmPXOQ8mLm/E6dlHDrsyF3sbwLZr8NoAQCsiue1s4l+aKvn3PQ+Qa974W5GC955jfPIOCpwKJsVKTEdtEXzk3JjWAHzWWlJ61E7QG90sZt6db+Zh5J1TvC+9mHqbY87B5HerK5ZFeS6bv9vqgE3yPfGWwOYQGhypSPtPAXfFvw1AMCDQQwNVAXQbV083QLrPUy2hfXxsyPhDKHkNlJY03E0eHc/F4kT8TTGxX6VAIDqYk6wk5dogNcbkmB00t081cpzHrqn6K7oF6gM9g1x0NZSgK4EDrB3EyfKxhr+7Fmi61ajK0BACBVGH7TyMsKfr6USrPpHuvvuv47E9kq2x7peGsFpusXrZD5jMOQeBHWzD+5ihkzWH6PrL3wpq2tnYzy0ORwt83Tnj9uZIA5doowel8mZgdFYnLDSyK0p4jWjvpzkgQaGS74fHoGdsXzGmREuwEFGPmtxnhtdDn2M9/j4b/Zi/3dpCJay5lcsE5s/FSW1jMa58aU+DCdTtl7ruMkn6DecgJti2L7KoDbMt3PStJpozEZn+f3+HE4Qt5m69tGja/DjcMp0wXAMABAnS7m6vTgOawLX4aKRE06c5gI1toETLDWO8iyZLEbtWzx35Q6/cgCAc4xGstHN76ZpnGK19v34+1DqUn/Ih3t73zuH+P2dSRYAQGFADC65mIjsrKOcv/IAF7EzsmTUlD+LpsEyAIDvGHVifysTf8a7KLt7q2iAJ+few5Qf50mzH8NrRUvs80UXZSfmg7DBh3NKf4lliE3+NEhr19A4b/S/DbZJjuGb0Xz280sMO1z8FRe06nJeWzY0gYOJDHVo0SvfoZocwSSrw0UjndVThCE77UGQDOkcL6LuhM1Q32dtEYge49yaMlKfMCyT2hEMxdTIzTt13RuwvfhxAEB3COfcooN2J9KLNsBacRB+i9QxyA2EE/eR3GR8n4vt1egsZPn9BgAwU8BF8WVJIOOiGXpdv5dlnp2tldBFUz9NC9e3KSqEoqCgoOChuKkMXMyZAQARfXRJJ7ItmE7i6lO6QMa7X55j7SXPAPAKuIKASboR40v8rMOP5TY+BWSvthNcLefjcpAWRRaWerUcAJARSrboNnFVdhyPRXgwNy606+hifUqj62afJfs87/cCCvwZKjl5SoYv9tBFajzHMMvaIjKVnyzNwSCTbobhoRXLxJ3JIwMSP0WZVHV2oTuZfe+4aAEAZBvJmM9t4PkfsVOnMeoma5mfMgMARp1c6Ycfp3eS8D6ZRHdaDXy7GG4wh1YCAFLtDEM0RDBEERltRGgkGZvmIIMYzqEsZt/jd8pXz2NuXCZcdQwrZXSTVR0qItsqeYvPGU5/G1kxdOFbLAkrlokRTB5WV/OUvERTIjICyBZTLpH1zBvoPfXqyUC9jT6wpZGPPPQWN/uMy40mcDAZmtxF5vwbX4FSK/veP0RP7w0z73P/AEMh7Q0t2FLIEMH5ZCa2slrIxOs3ctt1n7MGa0P4fTEmk3xt7HfIZ/isnBNksCfa4mCxk+U55uRW8QdXJpfg7fSK0uYfBwBMaJcxHEE91aKpj30HWV46nsnE24IrDa5sMuW18/Qu8gxkgD97jS5d7KfYZ9eL2RgwM5wxU0q2Oi83jHkPkn0GBOWhJ45hAVMQ5bDYyfta6+mJDfm3YuLcE3xmvfSKknhN0DrqdmEvr22y7UWslItPctDKBAKg/wznTXSqPD/H/yWMGFhiemiIJwF+tpmeS08H9amnDNg9QK/jRDT13K+OXtGRZIYM835EW1O6xhehSey7fzL1fkiWt8ZvoM7MtSXAHcpyxPMm2pbEt2iTZjvIqmcvX8VsMj2gY8n0gB5vl8dovM8ijZZVbF9CfDQmBji/25Ijr9t/xcAVFBQUPBQ3lYFfcJPB5G8n4w24nAh7NFnrfjeZxLydJTUBLq7yidVFuLCXybZ7l5g88LIymRTTzpU7MvZjAIDJuZMI6mKy61wSk5BRixbeV8eunrj9ImqmyKa3Wfn9qgSWlHXbyDZ2X9yL5+0sf4r3exYAEH6MMamk9HIAwODz3Njjc7sVoal8VljetcN4bhx+stysrYeJ0PihMNgGuMLrVjMO+WsnWV1EP3MA+vosBJTxkJuWgzztzCQTNbpGxhYvZHI7eoJ1Bt4lZEq+Tl6zNMfEkqORTMxWkg6zTMI17ubKHy1PkdMKyFCO6Mbgs5Zyb/mOPObASNaya0CWF06S1cz7rMZUKNlUTP6ZlctkgqwtOIb60jkUjMlexlmrs9gug4NtSY8ns4tsj8aoD5nS6Fqy9fZBekZ+a9heez/75rW9F30p9L6mf8nY8S4T45GBA0zWhd1uw8kDZHWTmYz/ulOoA0Fnyei3lpVCf4YeQR/oJY1kcRPJyHHS6whBmRfpHWjJZmneXPT+FcsEANa0/RUAYHziOADAOpiC8L1k0e4Mxpovj1Hu/q2MwQeGX4GPH+dUTQfzBrGz9HY330YvzdLAnEFoQCNaOujVRnjRe5lLpgeRPsXNNVXhNRia5n0SdXymTyKZZciM3Co+tQph+cwN5EQxRj0SyWd5TVA//S2U6cKiHT1j1M/csLIVyyTPnzH/s2eZV9u4OgmDV3i++LrVZMN1ZYx39/mzeCE6aAF+Qbw+0kC743qcHuyG05RVTznLP19v+iXCFv8aALAriHZoJIy62H+ZNiBlix3BctOdbx3HNjCKuRDfv2G0YO+hYDzTRE9oxwx17JVC6mDuInXHK5M278oPMmHaTW870v6e7OlvPyFPMXAFBQUFD8VNZeBxS4wfB/Rzxe8v7sGwF1fmTXIDzvwYS2u0KNbiuXe0IMdEhnfhvBkAYE/itXGSkepmZCxvch5dmxjfjW4hk3C1cYVdkOcQC69H4TPJGGnTPDO8u5rkuwLTWWXxQ6eGYhdja3p/Ftt7zzOWOx1K1hl4PyscdryagaZ93Kp9fIrM8bMrkImxhqtxzxJj9JdDJ5BXwv5Ou8jm0jexD5NWxlmj7c1o6ibT2plMFuB0MF47lMCqikA7Y8RVOoGASDKGvFH2ySUP7rHl0eOwjnrDUMgYqn6IY9S/SR4I1MQ1PjP5SWT/GzP2/iVkptMDZK1ub/m6vgLGlQ/EzGHnu5Sl6zMrfyNPeBifHWKTW4/7+nExiEx5zsHYbuKnyMCDXiIjnwk0YqyAXkzxC/Rghk3sd/R79DTWRTG+W2+pwn7pjdxr49nw7vfIShv4FbTXT+PRR8h0m5vJ4KNbeP/JeLah7lwDCtdRlmMn6R1GWx4GAPiUU7Z+tfLNSX61WCrmteurr18a9rtweJox0kezqXsjcKPRhw1+ZJrehybf5WjUeBSEO9yJyQGOV+0o2zg9wWMTnhjnMcVOL3qObydvxuaTZNymIMq1IZNjUWulfvrWJOH+cDLHycJ/48/z8q1DXoxvb3PGoWmcMnJJZhrZy1hwnZ55k2lvXjuV+T78BzhnvWOvlRHm3bBMTgSQqZZlMFc1HTGKiEfY5jWNnN9nfsq5EbCdcnNa4rF/kqYvqpdzt/M0K9Cat9JLS3bI+V2wBamgh358mB7YoyaWGLYW0MsY68mFjzyuOtOP499bwRj4WH0lAOC1lHJE9THWPaenxz54kCxfLw9Ji7rICp0H89JxsIVzH0kF1+2/YuAKCgoKHoqbysA1HRlQWwjjVkZXFDbEcqVacpPlzAaTOR9r5ht59tQUY9xIdhFE0oUsmcU/GSgP2PGR79ub84I+kivX8BhX8e5CssPs01yVHa7DKPMmSxnYQebdeozsoFFuLc91LKA3hGzHfZUlZOO6AAAgAElEQVTXrJZx5KEzZCarQ9mGrooAJFbJePiw3Pb6+RuXyVAHV+PEGN5/LsELvvWMJc5GMSa45QQ9jsFAsrrmse2I287r/Z4lwxnZRXa8JpQHHY1EMG6+Q+TDeZ4xb0w+BgCY3kc2VVZJRjYZFgfM8D5zXWQZ7jkyG68qMrKAxe+jPZ0ewEI34+Vj6Tw6c9US432RBrKF6tZ30PM4PauooZVX5hT7MCb4ehjjpUEOwD1Jj8OYT0bfe5D9Te7gWHakWBFhY7z1P+XRC0X+jFlGp5Mh1s5QgWz+Bdi6QNVvtXOct4XTO/GRddsu3ynMPsdNYad3cjw2x/FZQ0tkrqX1D+HcPD8bkscLb7AwrxL/C8q29knGPXNbHsPANOOZmnfSimUCANnJ9EI6fXgUhH+yCdteocd0cQfjvOv6mQO6XEEvN+PKPNzyECy/AuYEEEDPov4MdW94A9uen9oIi+BW94vdPOBtIoRb9TcOSy9kaQGudlbeWG3Uzwt30aPY+wLj7udDBxDbyz5aLskXODzOg8Ym33ieMlhFDy21cR+c0TJP0nzjh1hdwwN25iNemefYPugVj8546p5PsjwAbZg2YLyG7dxoq4IrmDki5xbqdKGVntJCDb0sRyEZePdQEWJLKAO/AD6jKYbxe4uLMvmUpQtH99FrHrskNwV+nzpn86eXWhY1DXcsx8jZw/mYqaPHmtTDyrFFfzL7Id1ZTGSyX3lCf93+KwauoKCg4KG4qQx89jxXwjm5LbckvREHmsj8iiPIKF3yjd93ruJqXm0IRtJlskJnLBmIbZxxtB0HGDu6up6x0oBIDaZ61mb2y0OK7h4nQ6ldxZ1Rm09exOg8V9ngZ8jQ5CsYMVfJFXsi2oisS3zmTCG9hZEwroQb0vjMwWiutIO2cOiLuVoHxoyvWCab1pKx2SbY3ojgJUyuYiY8oka+vk2w35Oy/zvcAn0vS1b+KGN2ge1kU1a5o3DWSkZQNRuErhLG/9doZCATR+lVdMzQ88hPmkREGe+9cInj4dYzvzBaQSZ1riIXl/+TzPvzGfQ0DBp/tkUydhdg5gsV1hz/BMLWMRZvryGrWMEJobgyxbYndTMr31RsR1w1mbyMDGI0iCx0zQ7qS9/QVWS8Q7ldyWW9dNgCK0Eu19Fz8c8n6wsYPgvnBD0090fZb8f7jJtrftSTqNwinPAmY9o8S0/DnUa5BXozzumMNqJkgRUYp1r5PtTBdnqLhly2q+S0PBI4yYnsWXoP4Ru9b1wYy7Aojy2uyKCevXeiBxG3k23u6udYDqWwP1nBjO22hHgjx8cMADAHsq3xGuuiveJ+BQCIkwcxHepbjaxpepbGac6/nlDWLI/IIxsuJSej1MT5py3SO9MsjKFPptH7c2pDCHQxbrxwp6zkWeQuRJ08AiLLh+1NKR/HGxZWOvmcbZY9vfGjz3wkBS1IpH687nUKszbmc3zjmbcKG+czE9vZf2uRGcF2+TKYbnpr3QlyHq5mVZFhnHq7OmoAXW6Of7kXj4pdqOf4JV7knG1Kq8DaGjL4QxrH/Q0zPfUHfeiJ9RTFouecBQDgmOZcfSKDnlxNFefn+Hp6mXHtEwgtYd5raub6u1NvqgG3lDOMkaRxQr12sQRJ0XQVmvw5eOYTNDJzG78FANAd/gHqk2RRfRon9rfkG2b2BHFAZoM4sVyLDoRW0yjHJlNBxhwUijuZA+x9eyiWNvJZtQ9wIkb9A42+YY4LwVjlMPxkCZ+hhFvC/d8vBwDUyKOc/aZp2P0zeqA7RVfSf16W/Kzgpay1ZiqS+SCTOqEhSxhx0ngG+tH9cpgYDpnQceKcT5xHyEM0nqcMTJzudvA7AS1Urmkr/5573yDCRmg9A/op6+E9dB+zO6iAvtk1eNVhAQDsPSdfavwA79Pu4AzJ+p4NEV+jnOu+yc0+o0mcIPoUTtasN9mm1DsWMPgbuuD2/LkbF4aEzU1DF7mLEyc6dAvCN3NiBX+Hi//eCLbryiKN8vrJYhzL4jj622ls2osY3iiZ5zZnn7fZzpOmURQ5KNMqLybLz3P+YmsmJ95rTT/ArkWG/PoX+Oz2OOpd2CBd577OVoyv5iIxW09966mglQ1ulCdIytLU7Ihu6CNZRjh+lO3AoyuTS+AU+3zOYgEAbC+LxbQ82vPiKT7XW8fnJo9y4c3YFoWT4TRou7w4f3obubiGbeQiGHqEYcwcTY/4LLm4b+XCU9DHZGSrgwJKLJlF7yzJ1por/Cw2n0Z+ok+e9ZCwBGMInzXcTTkv9vJ+0TEcm+5WzssrRgcG9Byfv5QbjFaCs/JdpBmx7GPV2R4UrWf5afd5tgGf4BlCxg4WJOy+GIurCSRrg6COiECSsLxWhnpq17OP+sopuBYYenTbWcDQKhhKS9/G+TOd6sKFHo5pgZXkMMGbYZcEX9qabqMJe2SI9vhl6ljfObazPZBl0BHhPI8l8KoZBZv4rKut1094qxCKgoKCgofipjLwvASex5w0+gkAwFBIIwJTyJpyOsiERlfRlXXM0uXauD4cE8E8h/ngcbLUfXIzR6h8o7tOvtUGV2dQ185VVvcoXRpfL67M9WcY+ojxK0bzYa6OhffS3R25SmY1HcXyqKi4OaQJ/j+klW7hyUX5xm15MFLIDBN2M6ft6M5kyVZEv23FMjG0kaF2ZlgAAIMzZjhqyBzMNfysF3TLuvP4HNOjVQg4Kt+fZ6H81u2jm/i8gy50uDwTu8UQB0MIwyw6M1f8iTZ6QunzlEPrlTJ8JIzu8OEihpxKq+laJgVSDvFBbvzkbbqVBTlM+O3tJpuaPMDjAOLCyJh/eqYYe9czMWOTb7JfCTaCJVnN3WQs4fNXMOySYRAXZdwYz8SbWybZ7DP7Me/PxGtPGfXBKPhz7DWGQgwJ9CoWSkswdZYyKA1nKVy77P/JUV7zubjNsDYy+TddxP6l/IwJr5RtMpk1YYHtEJlX8T7qXUYz5d4UzSSiDc/wO5a1GJplACjEd3LFMgGAuGDee86L/bz65irUbyWDfExu728upieQeZHe5DuXApHWQjb3WgH/titMvl90loemrVrDdl0O0MN/gfqTftICAPhxIj2MSI1/D2t3InKOCbpjbhYaZMiCgbEu6uQm7xnUZXKuOuQb1+8PoKf5wiRZeuEE7xtaPYrbU5lUf6WEoYUbfyc90PsydW7xHiZWy9ZGokuj7AvnGdKrtnL8tCY+p1U/ihoLvWZTMj3p1XYZrhzi/eJkeDY91hfBDrZrNpJyD95D/Zx8lp6LcUGDbzSf0TBBm1Lsz8R+Wxjncm3NLFyX5bt391Fuoo36uSGSSdHmc7QtcxtnMeWiN5uzcP2wrGLgCgoKCh6Km8rAk6eZPHnHyRXnHmMaht5mjOiHkTyEJ477KhAyx3jh2nOHETVB5jC0gfG5KY0rfnAakx+BYVwJWy6fQdweMvioWcYGfRt4znV2EuO/bcbDKDEwSdJwjvGzwm+T2dR1M+EwPhSMcy4y7MVQMtKwLCYThlrlmcpxjCMj3RcFkby3QR+4YpkshjDOusXMN/0cveIFXRpZa0gJ42nhZ5nkMC6RFYT8yIAz8WyzeTU/++qvyZC+eTvbfaCA7NX87z44VMw45LZIrvg+8lxxX+OnAQA5Mfk43komOWORpWZ2jkuKTG622GKQJt9s4x9FNtw+xNindSMPJppe/CIA4AtzVzEzRnaetHvNimUyMUGPI9/ENvRNh+NMDhlywgyPsHVZWQoXrKNOHS8/iTtekptHnExm1i/QY2j8MplX9AXKNe5SJRp9qF9jF1hGuF4esGac48++hggEr5Ybz5IZH50y8f4zGlla765MPJZNNjt/hPmP19eRreUeYL5iUzE9hau1wwhyy3czhh5YsUwA4EAX3/VUXMCyu72P7Me79bzn66H0HBIOyUOtBskoU/0X4VvBXMrDVnqRiXWM4XflsaRveI7fGde50N/J/2cY2O6P25hbSU/g2F80hWCxUW7yWsdrijR6JMfvY5K79+00zNs4XvO3s9xz4qzsexcZuVcJPbSTIZsRbOdc6psYW7FMwp/iuwH01fQyQ7rvQbGZ7fC545rXQGZ7Us950Df+HjL9aGi6GulpTgv2OyyHjHeLg/PLmeGDgBGy9PEx9juvljo4vYZ5tbizY3jGRRskNPald4bXBq+ivSg9dRjrcuklHTzyFABgpJAbl9YGMrGWFM4Iha3BhDe8qWv5flnX7b9i4AoKCgoeipvKwDvcZNKmOcZVL094Y8rM1W1nFo9+vLSfGx82FJLlvFKyhLKjZEB+8p2VA4mMe041M67mCiU7MK0rh+Xa29gnWSHx8VwyS9siywLjjm1HXylX6ET5MoWZtxjbLF1i+97ynYbZTPbnFU9GOtjLrbad8YztTYaQ+XacHMBXZUzxfXPaimXSO0iWZ9PICIypFzAqyxEnTsm3u3yCVRkjldyk71u4AVE99Aj6zzKWuDH/aQDAEFjOlvICY432+0OwppusYP4M8wLGh3iNYZyM57DrJVToyUAObGAfLtvoJSVPkm03hYThrnt5n99Mkz1NljMWmHaeB9xbRsjouguNCO0i68mM7V+xTFLSyWZeGuHzAoPD8dWTlMkb+dSPJQvH+coOsut9B014dp5jUxTBfnofY34gJJj6MtLE/obq0jGRRvaU0kWm+twO6ovJxfu5NSsiB6lXfm30aiLuo0dkeIdMrsxbD+MBllAOZVoAAKlfZH9js6lvKOTPwF0NMAgyrcuhK9+wAgBPmlhxMx5Oz+fS7jHc/RWOW8JdbP+5GM6nZll9FuNqQ6+BurCUSOaYa2Elz5lrcdZpzq9ikxPdMt9ULOdao4366R9GbzfA4g3nAD2b/CJ+r6ee86ZviPmJ7FRvzHfxPjk6eoJ+Gn9+awe3n7+ZzIOlHqu5hNYgbti6c2F4xTJpqbfwPibmd1rDnsXSGMdk0coYf8ggvaq75DsskVGEWQfHeUS26zZ/ekyDLRRcQiyZc+VYN6YM9GDWxtHjqJ/nW6tyznJeirtGcEcVrwlIol51S68GZ80AgGrvXEQPsH+dLurPvuOU8XQYow+6ddSvKfsqfERHDyAm8Duyp//yW/uvGLiCgoKCh+LmHmZVzxhxUjljU70tTiT1cSNC6PC/AwDKHVy53lrg6r5lyoCLxWRSfiDLyIhkDC8zhhneRTtXsI6mbgzLVTYmjUX3c+fIypaCZfxv5wx85Zu8hUMW+HdyFb5UzsL6rPoS6GbI7lscjMd6G+UWafnygtLLvG/kk0E4LWuTl8Tzsqcfu2GZmDsslEWcGQAwddQPsZv5jPkA+Tbx42Ti5xpZOLwq49NIMbM9CzMcwuAuHjXa5M3DwEQFGapPERAzRrYTu47xvuaXGK/1T2BcMn8xFHUGxtr0LWSvDm/GFps/z5zCxqcWUXuArHzHFh7WHzFJ1tIR8wIAwM/ESoDgrD742OhBIfDGZXEN85nsr9979HJiVq9FvZEHkAUNMr49Y6Znddv5xwEArRU/xVrBHElfGPUk/DGOnWgiK76SxI1kG3yiMFVLHejjbmZsslI3x8LpnQUHv4vcDn5YO834anYLvbJDf0uPa8sbDpzVM9YZwaZi9RdlLHqcjPVKMLdN+1i74ZVCZnhXU8+KZQIAZzJZ252+n23s+E44Qn5EL2ikgZ7Ezjj29dfS4xQ9u2Gaoxxq2hmDTZlnVU4G+Pv2CHoYh1o0NBt5vzwbZej9TbbZ9R0yU83ggj6CjP7dac6xIANzIKZUPnPy8gQM+cx9TPxYHhO9gzme38xxrlj+lb97FT2A2DzKteboxIplsmmGua7gCb5f1GeiBV4DZLJaDOdoSDEZuKOV+hrxZjF02+hp7g56GQCwWEdvr+lrHNvs1zh/JnVziO9kHsAq92cYTPTKX13LeRruHEeFkf287EVFGOykN7I5hPtZAi0PICKN1+fPsLqpagOf6XOSMvduoh16wn8aXzGyHUkn77xu/2+qAR/Sc9J1XOTAZ4y1oCeIk9XrLXZm7d/SAH+qmxOgtSME5hROoNBwGp6AKzxNzX81Fbl6lO76tOssNvlwgo+cYXJqtogCTXWWAwAutljhLbe0ZcfQRbaup0uUNkxFNtsW8Mp2GoM7bUxsVnbQRdOPcGE5aqMLZnxmHEm7aWgnklaexIy+j8m+mRD25XiMEQ/LBGB3ONvlCw5ibggNcVjPMYx1cxNGwTrKtMWf7rD/Ahe3VW8wDHElMRpJflyM8KyFMvmWGQDw9CGWPK0zOrG9gePwQ/l+T3+jPPXvN7/m74nR6Img6z/dy81Nx8K46SGvn2p0ZQv7X/brWQTlURlH6rm4rmTTSks3XdXwBC4q7pdcWHqAIawUb4bfkgUNy/u9Mvn6rhmBNj4zqZzXhFXSMLzsT8P9CflGqCpnC7YVcPEacpNMzMrQWPk87/Gy/h6sLWPf03N57cWTHOeU73AC1q+PwWwlF7WYSyQTgdvYztO6nwEAEucYnuvSFyO4jxug+pZKb1wYyxA6z6TXWAl3iyZkdiCsjacofreZep8Zx7nwzXYmD9/StSD4TYZOSlPluz2tnBPT8TTgjnomVa1FY4htuRcAcPUhGquRT3KulGzk/OzULyF0FxeSwPcZCgiIobFJHJAbzpJSUPIOjeW/lXKx2hjKRWRqhqWwqWEMP/h5x8N0gHJt9Y9fsUx2DfO77xdxUXJ3+0LTcXwafOXGrtdYJvnINzk2h6eGkBkkdwj70t74RNPoR/6aMqoxMtyWOziCtydpF+4P5sa/N1toN7aMcLHsHzXg6fUMNX1lnIvFC1EsGQzrYoizwOcqBq4VOxwk0eme5NwIz2f4pekqF7dvpHZizyznUn3Sxuv2X4VQFBQUFDwUN5WBDwiuSql+0gWM1JB2B1fiIPmeuDNDdDkX9WTdEVvDELnA1bs18qMAgCU7wyEpV8kkYsu5ss4aN6J5iC7sqmS6NJ3yTeX2cLKDoFLgSBXPMZm9QrbqncdVuOMir7n3SQtyBsg4fqCRiZYJtnluLTdKJEkv2DX9aYxfepHts0h/fAVRA90pJgk7XFxLdwdWItnE0sLIaLLM5miu7uEmlmbZWvOxNZzbu50uMr+8djLR3jT2LSCcLvDan6XiZRNZ5mdsZFOrLzGUctZMluU8vQvfDyUb29ZLBtoeRlbW1/YZAECUXySKuslo8Bf0oBx/SSGIYjKHUhfL29qa78fGxyiTNzsox7++cZFgRr7he7STDPqB1cDb7dQBPx/KwjLKcQmKZ9IorCwT0QsyjuEk4xIJVG/fKbK0UR96FwmIxEQZv9c/zQTaem/2f6SJW6zv1nXCZaMXOHCcXlhxIfufkki2VzeyDkee5L2ThymvUQvfAuO9jeE5IT2bTdoZxGl/AQA4gaoVSOP/oNvBErycM9xy7fzEOky1srTwR2w2OsPeBgA0jHCjijMyFOZYym7oDDf96G/jmJgKKEPdObL3fLsdZzazr3mVZJLWDHovWg9DCin5ibgg2X3uRjLRs+30XtLOkF335Ftx4WHKNQ0Mq6T1U/eaF6kr0Say0fbZE+jzZVJdW3NF9nTzDcvk1e2U84xGOecPx6NSUK8z6jifE/eQ2f+ygXPjyQg3ahrolQbk0zUcT2KIbqmB83BuniGpRZ0DsTm8X6U35ba0wDFv9GUYzmAsQWwIvZBjE2cBAOW1tCle4fx77JUIHHVzvpSnUFdKpLd8tIpjuC6dZYQRRx0Y3ybPjs8bvW7/FQNXUFBQ8FDcVAZukm9aHtlG1hk/H4+EJSZArFUskcImMkrrCBnSU+3j+IWeq+GwxrhvzjRXT4uLbCPUyqSC/2wHwmQ8zY878zG8huxglWBMbnIkH59PYjtiIlnW06ZjjCv3s0w8jFT54MrdjHVvqJfvduzhNacayMATS/j3sZeWMFXOcqXsvpUnYTrXkOlknWWsq33tIgIbyGxOTXBFzvWnhzG3RDnEhpgQHEwGLmxk6e+Wsuwo7wTZ61kXk06Jm2woBmOnL39avvGjhknH9EWOw3zJCNKjSeHCFhnTDe0k2xxew1h609v5MMlTEeNeZH7htmzGEesNjB/OHCG7Mt/xMzzd9TUAwFfcr65YJuFRHIeYCvZ3rDUA+YGU7egmJsdmq8kMfbspe0fiIExNLFE7EsQk63y2jPG/y37WxTGuqQVnIGWM7OyeBDKk872UebIXk1sTPqNwmXj9+v5yAP+7vTMNivNK7/3T0NBAd7M0+9Y0q1gFEpIQEtpGC7ZkWV5nPLaV8VSSm7Gnam4muXPvpLJWZqZSSSqZTDyZxElmkoxjzzi2Je+LZNlaQEJsYhMIxNINNHsDzdrQNNwPvzN17wfHJfJBKarO/0sj1LzvOc855zn/ZznPEVkP5kh6bwZtmL+4LNUGGGZa/3MiItKQATtOv8KYBQVhGb0xvEfSi7iBxbxcummZiIicjmPMXzrCOigZGZWqSwSZXd/j+Hj2BGy2c/8PRUTEMFwhM0eZC+MJjKnRQYzF3sTv/zGKe19L4xOlupfYT3gZqqGa4Ze2UOQfc94jleHMo7s5ThERqZpgDt/+Jmu5dC5Hnqsn3fNfPViCV3fCSMfzCDpmXUH+KeVH5K6qirlwVR2Oe+HeZZJugIO6xlnTvuYhKXgGP3aDlXFPdTIGZ4IosPYja5w88/g/iIjI6mv4mj8ZQbaJlVglSQV4Bq7U9kliDtXplsNgzNFj3+Mzm3m2dLddwuKUjkIEcno7a+XFscsiIuKtmpXkDnUTTzsWWLfpt0VE5OPMvxIRkcdq8YX7rNskoG6lajc5v7D/moFraGhobFHc3yyUInb+lWn8RMeCH5PaH7PzBZ1R9bfbYZCnEtnR/nYxVcpN+LWz12FAK5kwGJ/yjU8Yydawtz4tBd/FD1p3kx2seg4fUlccvrKVpAyZbcC/1OBgJ4wOgXXuuwz7MG4USeFPLvOOSvywyzvx0ZcswrwNqhbyiHlABj+Ckc6G2jctkzBVbrLTAAPeFWoVQxV9iGghC8PWp1LCspGfbTJF3KpMqXFG3T6eA3NcWcbXmOSDxSavjolvmqyHXUkwnPPB+EfN6oBLfr1bhhJgIm+T0SSxZ5B/1BDys++LlX4VfW9Ppj0zy+z/MaEwVX+RKk9qsMmXe0jJbIhAJl/dhEy8a+rATR/j9EH0e+JYgP2U3WIcLVNYasNTsEqPzSl1bbDeAgeyLFEnsy8e4Ye1ALGFpxauyCvrMENPI9bbw6FYaP1hLIk1V7dYk78lIiLWVHy+414sjbhu5BiSaJYEdTdpYynzODOMOfSpGYZ58i4ZNU/kz8noJHNyqOC/5gN/z4fcd/tglJbGdLmVT8wip41+/N00zLdKZS4tzqdIcB3WZKoZa7StHZkVWzgclR3EXGpsC5cdKhPk0M+YR+9V4st2laqiXcEW6QnHOh6MJl6VuUw5A+PPeV7E6WX5wxwspBONMNpxlQHzlUt8p3kXazq4d0KSepR/PHPzWSh3VE3u/dn4l9vCjGJUtyL9tspYeq2XdWQ8RRGpotcn5Mp1ojIpFrJ4tm2nhJZlnRIN/nUsBk/YGYl14wMvVId8xM8c9A8SCxlJ7JPIPvqZ5UBet92s1eoNLOtW32WZfYT1EdxMexr9L4mIyNFEspMS5lmXH63dkdQFnh11iTGT//H5/dcMXENDQ2OL4r4y8Hg/vq6742qXqg4SWz27Ttgou3prFEwoeR62txYxK58tqRta5mAOd6dhO6YIfEbxJpjXM45e+YMZnhMTza5e78E3Zj/Prjlc4hP/GlkKSZdgeJ9sh/WHxbHTLkbul95kovFPr1P4qu8aGRamPHLR50c4apvaZZH5Q0dERCTdULdpmcyoMqm522B1oRN+aYwng8YUC0Pus8IoVgS/3KylTuoXad9plU+b1oOf27CubiW3IL8PluyyNoqFcCiUDIkT8TD8V1yqIH1ehuQvwDKtJjIAomphSvYCvjs8sC67l2Angfdhl4uxh0VEJGQXsYixaNhf2rv7peYYWTtdwymblomM0S5fmSp50L5DtsVgbc2pzJDxGPzdThdMqqFvXg6dZOxrlF/U30lf7I3EOiYDWHB3Yv1y/AHa6vuFKuCfTxZKlRv/bsjRr8k7C/hr3+pX910+xlzqfwefb3mJT2qWfiAiIl+ehIWef5Ml5T0Lg7sZobJkVlIltRi2/mDs5ssOi4gcbGUsTgaRh117tk8i/hZWHu3DyjgVwjum1CG31Tm3OMeZE7MVmFeuVKyEHA+WyvVQsrvK5yySn8ghnbcqkXekjfMO+U2w2QthMeJr5/0P2phP03sZp2wDh/Lci53y5BKxiZ4gmHGo+puuGJhp4U/VWYeyNXGpwluOpP5Ny8TncIqISEMRazmrJkRGo7GoX2lmbkRUMreNb9GGO/NWSXwQNt55jLn89F/Q35cTHSIisnseXfXIfEA+NsPOe1aJ5xyMZe3XVWNlpLZul5UDxKBcY8jaNYqFUeRWB9BKS2RynNhdq4F435ezmXu9F7E8Zk6iPzaad0hcC/Gk2WdXv7D/91WB54XTqIF5JpfhRb8MqxoOZW4U0BE3/+6bRxBnqlbk9hqKezWazjxZhBLtX+L2YGMXwn8p3SlfX+bZbzczMGUZKIP4J6gvXun4M7n4MgNc+QwD+tpVlaZXgpkeP1Qv5iZMmLENDq1YQ1FEI35cFZHDKNdaR5RUX2VB/jKbjen7m5DJ8QGU9ffymQw5A2NiDxAwzXOjrD57FGXleg9F8usHxyW1hJ+d51A8RRuYZb5nkZ+pizSttGsLEjmLnG6GsJgW9/Ku6HlVUzvUK9eDcQl9KRFZf+hCFpYolH9PZolsX+HZhRlEasaLmbTtERz+SHgHZRWV2STmEKpA/o3RuQlpAFMSz/G2YnJGbvTKUgsLYv05NlLfedxo/lyUcszdVClU1/LZdqA8fbO41s4dQPE92slGm5tEBSgAABQGSURBVBYTL+6fEODsyMW99HiIOl0XjUltbQ+XHUEoppgKNsOid2mD24grxONJlvwpxuqby5jQDx5gsyhVle9WVghcpYz+QBbHyS8dUlcKbhb/ZD8tIiLNPubkarRdTv4OczmslWDstIXxCx7E9C52eWQw1SkiIukNyNMWRjpdZAKbf14w86E//7rMmpnfQes8p/0ycyQlj7mda7ooNhtrbKEC982V21S3NM5DKgp/ESWB5y/Txm2QLGc4bqP4UObQj3+N+XbWPCVzaaTfmrpf3bRMjmeyLgfdqLKQZ9wiTghdRzhr9MgEG3p9KmNS/vAO2TOKDO/8KS6+hik2qkMeVc3Rxyb9ga1A0gKQmbIo5vQ5AwSwdFilFmdmSFCHQ0REuofYSAv6mYPu30d+SRfixdHKASNbLhvnp8HonWaV8vvYEkQy0z8tB2LQTd3ugS/sv3ahaGhoaGxR3FcG3j2H6ZCaBNvp2W+SdBMmm3MDkyWpmh2rSJnK86ZBcY2oGzBi2W1NK1Tmyhsmx8k5AyMciamUnmHMMfdRTLScdqeIiLwURxDyVO1bEruX9LfBetjGgWF25pFc2EL59lFpHIAlzbTg2oi08B3fVf7m+m7YxnqgXZpjSSuzqUubN4M3jZhjEYsEMp51WGT0Dm2/nYzZGrtEGwyRMOi5v7ZL9/OwwoIhmMxwAvKbeZfjuSZ1i09YcbfEGmAXKVeR7fgCDHI1mz5W3J2SjX0czkm9DHMvLIbRdayyx8/7POJa4vsBO2Oz4GQ88hRJ2MiDzZj9CZJ8A3ZxPpdDIkc3IZO7XlixaRHzs/JYrLx+hXeHNKnDOl+CxeROY5Xt3WmQ4S4YZcMbBNeeT4fZLMxg6veNkXI3sdEijlTVdgOHwmZV+b4DkzCw+rQ2GTdyeCVuled2ZjN/992AkQ1npEtTMGNy9jCul7q/wnI7OoEFuZDAPPHaf0+WwnmXb7h4E9L4f6iaflNERDLGmOOuxmX5dAnXQXyAMSm04FLxrcPMJ56slEeDSUf90QUYYEQVVt8PDbiEDBtUl/zqeatMHISd34ji80AGLNN9nblz5FsW+awJlrnyJiy/2oRlM7FBoNL5zF3Z6ILtD65TUqCw649FRGTmBeZpZR3PHzv2prhvYO312hybloltN2PR+QnztmI4RVwrWAh7K7CyVsJJ3zw8javo5sI7MrSKZZRrxZV2dy9W5MQkay8mBfn5rcNy5Sa/C6j5ELKKzK+rAGPeXouM3cZNY9vOd6+GqJIWb+NWMs/elfFK9Fjy60+IiMhiJdZtQT2uk4Q8LOVW76D89Gv0J/ifnSIi8u3/+fn91wxcQ0NDY4vivjLwGRdsbD0HVlIR3CGmz9iNxqIJGI0oP+rsC7Ad+5U+CcrCd7hrFrbe0U0Fsag0/I1BX2K3L+1eltEWjtQ+ng+T6lD+3ry7sJZZh1Fu1MIqdufDSPIO4D+eq4UVfK/4ZXl8BmacYebvJoLYbf0nYO+56nBRfH+MuKNgJ9kHb2xaJk/twjf4l7fwoy9krEp/BYy73gXr3N7Frl6+Aru78lyJLCiGtJxHSmZ1E1bAL87SLlubSnmqPSXjx7FYRqspRjUQw6EPg8DwJxL3SF7Nz0VE5JVYmOTumzCboDPIdqM2IIXb+d1aPP7QOx51E7qPI9TihRXXzbwopXZYkG/hV/XAH7lnmexdplJd61dU3WtXmzxUAkOqeRlmG7aBRZQTTvs6mwdkQ10m9PyzFAu6+BL8JHUQdjRoUbWppwyyEYe8w5NVOtsKrHTJynyJyZoX9xTBpa6PkPW2XIoZ5RsZM39Xn4SHKX9wLb75ye+QbnfhHdha4jSpiwlxTZIST0rZOZV2+Zv3LBFg8RBQH075FxERme5ekMII3m9NJ8D8L8306ytm5BR0N15Gm+nT+lmsx5PrvH+ijmQArxVry3WsQupVbf3y97BG3VbGtvMIay/43E4ZqFRpiYs8tykCC/jYBnPu1Rtl8kgFa9O8TgAwMQW2v3GOObxyABk2vfkn4rGpKqXWLz42/nlIbMMCKzajR5a9DTK8E/Zb3MXa8NRTUOrO19EtSV0HxK6s0v4CrKHQGuZ00W6Cmze86l7VOqeUxsPWO6sobpbRqOqNlxIwTm9aEPuTjHu/m/t+SxLQF53DTv5mPU06VPGqqSeZjyldyHjsG6zZmhnG0G7eKafUODYczf3C/msGrqGhobFFcV8ZeEkQaXrLt2Alr6yuiTGanfjkPsUYOvGjnqpjd59vLJb929lnZgOwmrVJ/GjWUJjkpQkyEZ51vCCGx/AnTXXCsvcs4uucDmG3M938pRSX4ie8cBsmEljk0xgDgzg2ZxdDj7rTLxXfYkbYZfVcHL7WYj7XE8xirOfn0dTuTcukwQ1DPbsPJlnbOyGRjbDLb3uIZN95SmWYbCh/ZMeYHPfAcEJHiVwvFpA10DKEhRCjjuuO7CmVXeM8O7EMxryzV5VD7YHp3w7tFNMe2KG5GabUs08VblpBVnbPLWmdhFVUeFWanjop05TPYaLfMJEZEthbLWvTtM+v5LgZpEM0paaOdLe1Zbv0dvPO7G8h664x5knLBKw/dH5ZgjzMj4ENMpomMtR8CUEmrjTae6ytQ+Z8+GufPkcGxI++g88+soV0wMFBt5yJYmxKVamF5Wxk+rKFtuz2VYq3hrIEWYkwpcffhtFbD6oxe5/2BrZ5JXiduMTj3V98z+F/hkMj+Pb7fTA/d2iYuCPxx6a3MV6Hk7E8x8pJPc0NLpebqgZZRhBW7ichWIxl0cglMYNnvHerVp5eJvsh+imVcnlF1ZLvYB2MJC5LkYcMjSQf3z00i2X2/WjefXyHRdwBfMuZCxxDX1zEwgt/mO86rlHAafpki2T9B4zZ4/1Y9fTX7lkmP6zBKtqdwsGx84Ek2d2K7nCkw8o/tTC2x5bog+udIek5jHXnd7EW7FF4BVbTsbYyX8da6692SeII2Sy+d7gRK+owzys5zntunT8v0smhr/ZsdIijGf97Whn/9sZYJKmPSFCmSnGudWJZW57AAgp9m2Jl+Qn94lexvCFTxRf2XzNwDQ0NjS2K+8rAP8zEP/1InFNERM7aQmXoPH6pwkMcunhDZaW4l2FY1oeixenBv7imcnZzfOw7bUUOft/EDuaOeFVsNTA+bwy+ttunYQXO9/FRTWWvSZSfXTH3IDuyTLCTWicviYhIWFWJxLbznf4wcs7ndtH24Fp1m88k/umoI6FyKB9/1R1VFnIzCA+DlV26DbvtT1iQ3zBDmbofpn/rXqyK8GX8dLtP3JaoKWTRZaOfRuXnLOhWRaieVlkJU9dk6QoscHwHzG2tVbFiDBgpDlilposDVCnFMHH/VZh49yki515ziBxahqXM2pHF4iXa8LS6xaXRg0914OCEWBuwIoKLljctkxs/5nDX0TFVkD/bJr0W/KyGFthapBWmu9cPK77+75lifkExJeVbPP0Y/tH178DST/wWWUvTeXvlksqcaclR8+JlfKLNwzCpB/OdYgjFUjy3n1uOvv02FsZ4FP03xg5L0v/CSuh+lzkZMgSzMzZhgfSr21tOVCVK5r8hk4aqX5VN/cNNyeX6FH76rG8yjod/zyuhxVgHEbvJsDmvjsJXdJOt80lnklisag5/RvuTDMyVFoEBbotn/RgzH5ArH8C8s7qYIwfVMfI/eIgYxJ6pLqmP4f/m6jkHkJlNnw/MXBYREW/8TUm7AKsPCYP1e5PIza66hpxrDGTvBD7qk/gExik05dlNyUNEpCiM56QN4pf27wqRhkYs14QgdEleGe/e+IhsHHtSmqz4+M7OYSzYrgp1AKufuRf4LVhyoCNdslc5XzCrDqod6sOqv+DmeRmzhXKjAFmEjSNL8w51H6ePuTKeXiuWj3lXSgOxiK9ZWBt/fRUdcHo/F3V4216UhQ0O+eyL++LDTZqBa2hoaGxR3FcGXhQL5fvIxy6cFIiTfXZ2pZERdvWmDlUIvgSW0GxpkWDlXzzwTzC8xVPk965OcJrqWTM+s+sbF8SSzE7sSYaxzS3ChGIc7J4Zv0yWsMfxw6W1wHpdcUTeF9Rx/thfOmQwCt9YpJkc1+jXYBKGcphITyRlQ5surcgzftjgiGNw0zK52Udb/twPo/94ziHOcljbnZDLIiLivMLzTx/Ch9tzu0KMe2BYHTNOEREJSYJR7C3naP5llb8eMlUsEftgXnMemERqFTmuo4swgIjphyVrH8xtTWWS7KDb0pRMbKLi9JK87yKf+mEvzLRkPxH7eTfjEmmiD3veyJbFRHVT+TV10/h/Uozn8/CN41hNr9bRx8kDFnGFwjD3NOEnTJgll302RhXtf/qC1DcyNqMPMZeS1H2jq2fpd/sUWVBZaUESW8z8uOiHcRmdWDJZ4T8REZHhDKssOvn7skh8n2+ZyB6wTCE3/2CWxAYRIxhIII8/thf/8JwZBpY+SsZI8AdlcmMnMrl1e+zehfH/Yf60KrB0k7b3HAuXddPf8592AgcJl9RFCcG0IztmVbw25liGD4tmYIqYRdZu+tyxgjlSmJYjvc+RdTJ4Rx2/D4VBpqwQV8i6niXJp1lL9SqbZtzDGYKUMOZQb826GAKMXfQR4jbJl8gw+aNU2GbmOHJbshXJZAYnZt1GdWu8PHrPMskpp+3+OFhtQWOkmE4ig45z+PinbIodp6IngkLb5cc2xuDMKH0od7N2h4afExGRQDZWy8mVfdJp42x1Qcp3RESkNR6rz+4hb9tvdkvaDOsuIo/subVO5mtRNNaSuMLEHYdMjftYYzWDxPIOxyObw7ewEAfKj8mdCKzunMvMT/nG5/f/virw86rB34xgcnnCt8sNC4p6ZZGUn9xyXBeTjQzCiZUEudmv7n3MwS2w3M4CvZqFYs8IIGzHZ6tie5RJMDpIkMrixUwMTyfg0vSYSMkRdQ9lLQZIwSyT7fUzmC1Jd4Yky4OZ9OcuApNpsQzQThUgSxnDLHPdjpeeCky1mddZ4PLde5dJcihm8f8pwA1zYuG6hFlQkP4e3BkHynANeFsx1wtWrostQCBqRyymaqgJU2ulDyXh+BBXw8fxHsnahizzh9monKoWh2GSdLuVoBoxqOPHKXPIYiBfBahuE7AxpxrkYp+q2CdMelsb5uKVI7i/wj/kiHF5cUDiTYz1ZHzyvQtD4fUpZJxRwEYW6BgVf7i6U3GWTTvRQv+6u0hpW3EckMfzeWfLOp9X2pBJXjTBrM4A7V292CCpu+hvTDfvGrIyF47NMc7vDR+UU142ugY/Cm9jGdeMPZw5ZsoZkbog0s1OzyKvADE1WVpgzjrrCJKOm52yPoWSSYp4ftMyERGJ8aD0ehYIbD2U6ZGmcZTm6oeqxrcKkHkSUcRrt4Ylwsya8vwDSmriDGtu4RZ9ztnGHDp6Lkbm96NwVwdYo7Y0xu/0bdbT+wmXZaEFImadUKm0wQRy/Q4KeZtKrsnhWxCI6y7mitfHJvr1O4dFRMSdRjubHBvS387G+vXge7+J51dYUWmKywO4P7cFO2XYSdrgWBQb1O4Q3m1x8dk8Oy1/lAPR+0ERv1sPc4iISO0TSjc00v6J8DdkTyvyu57GJj3cglJNjOHi7rKZRIn0Mg/n4vm7uSxIjXGZeeuuKZc4Iwo65E1Ia+ELbI7hg2w0I8cJPI92DoqjgHG9W12vevr5m5p2oWhoaGhsUdxXBn6yELOlJQ5TLvGdq5I2qioCRiWq7/A5GEdhm65XyyW0WFUh3MfOdfQaBYc2BtmxFuL4mwtBP5Pvf4i5+LPgPxURkew0Akb9fQRCC2O/K/aXYOyXd8KeCo2Y+XucmL2vtO6SEis7+qlFnpd/nN2y+Rd8frUElmfMuSl35jkMkPrrmxfneiE7dEk7TL85I17M6tbw4jDe0WGA6eQcYncfWjfK5Dhtzj5Ce8bcMJr8VvbkhlhkU1oYLQUBjhI3DvGc4zEwwKZ1WEJv3IokDfDOvP284/dfpT0pD8CK3l01SVUa319Iwp3kaIQ5NaqyB8t7MGc/ShiUwxdhyBHWzVfeWwjHMuj3YtlkRzwgYXOM+cg2Dq5YFtS4RJIimRfkka5J+j6xQipY5QTFn14bpA1f+l1YUkhvicy9CNOyfhcZx/VzXH41EuZaueqTlhAY75ybYmLJVRQzurhIYbSngp6V3CkY0s/DYaiJ7+PeGJxnPApLSUvc2bMsE09w0GvPhGnTMhERWUjGrRc+BoN+pcshJ9yMf3spffw0BOYcvUqbgyVarBYsj6D/jSshYp70ytEy1o3hVVLmOnK8ouKZ0hbOnO634qI6OIH1t/PJBun5KcWrEuww0W3TMMhbw1gsEWmz0mhnfhb0IdfBbQQqr83xAkM+1tzOkYCE9WLZ3Ij8UPX0gXsXSg+H+g6qIOvFIbuYW7HmH4zCNdG+jUNkxjx0QPWsTaYDWBZNE6RmetT9lumR+A6HtqvCX025YjmLlXbChVuj+BF0Vp0BC3njP1xifZQAZHKHssIjsFKCTMhhR3W/zLxGkPazZ2hX1ihWmjeH540XIaPEG7mSqQ7tRd9kDsqXP7/7moFraGhobFEYNjY2/rvboKGhoaHxX4Bm4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUWhFbiGhobGFoVW4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUWhFbiGhobGFoVW4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUWhFbiGhobGFoVW4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUWhFbiGhobGFoVW4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUWhFbiGhobGFoVW4BoaGhpbFFqBa2hoaGxRaAWuoaGhsUXxfwEXB+ZghBHSnAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 10 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Visualize the learned weights for each class\n",
    "w = best_softmax.W[:-1,:] # strip out the bias\n",
    "w = w.reshape(32, 32, 3, 10)\n",
    "\n",
    "w_min, w_max = np.min(w), np.max(w)\n",
    "\n",
    "classes = ['plane', 'car', 'bird', 'cat', 'deer', 'dog', 'frog', 'horse', 'ship', 'truck']\n",
    "for i in range(10):\n",
    "    plt.subplot(2, 5, i + 1)\n",
    "    \n",
    "    # Rescale the weights to be between 0 and 255\n",
    "    wimg = 255.0 * (w[:, :, :, i].squeeze() - w_min) / (w_max - w_min)\n",
    "    plt.imshow(wimg.astype('uint8'))\n",
    "    plt.axis('off')\n",
    "    plt.title(classes[i])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
